asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 15624
ASPCode.it - Store
<< lezione precedente lezione successiva >>

Corso di ASP - Lezione 5: Tabelle Dinamiche ed SQL

Questa lezione vi introduce alle interrogazioni JOIN. JOIN molto utilizzato qundo si vogliono unire tabelle correlate al fine di ottenere risultati che contengano attributi delle tabelle congiunte.

La clausola WHERE

Nell'esempio 3.1 abbiamo creato una interrogazione che selezionava gli studenti e il loro voto per ciascun studente. Possiamo ora utilizzare la clausola SQL WHERE per restringere la nostra ricerca. L'esempio 5.1 contiene la stringa SQL modificata, che seleziona solo quegli studenti che hanno ricevuto una valutazione minore di 70 nell'Esame2:

Esempio 5.1: Studenti con valutazione minore di 70 nell'Esame2

<html>
<head><title>Esempio 5.1</title></head>
<body>
<table width="150" border="1">
<tr>
   <td width="75">SID</td>
   <td width="75">Esame 2</td>
</tr>
<%
openCN

sql="SELECT SID" & _
    ",Esame2" & _
    " FROM Valutazioni" & _
    " WHERE Esame2 < 70"

rs.Open sql, cn
do while not rs.EOF
%>

<tr>
   <td width="75"><%=rs("SID")%></td>
   <td width="75"><%=rs("Esame2")%></td>
</tr>
<%
   rs.MoveNext
loop
rs.Close
closeCN
%>

</table>
</body>
</html>

Introduciamo la clausola JOIN

Come promesso nell'introduzione, ora tempo di introdurre la parola chiave JOIN. Siccome il nostro database (entrambe le tabelle) perfettamente normalizzato, la tabella Studenti deve essere "joinata" con la tabella Valutazioni in modo da generare un report che contenga sia il Nome dello Studente che la sua Valutazione. La sintassi per un join la seguente:

SELECT [lista campi]
FROM [prima tabella]
[INNER | LEFT | RIGHT ] JOIN [seconda tabella]
ON [prima tabella].[campo chiave] = [seconda tabella].[campo chiave esterno]

Quando si congiungono tabelle, spesso esse vengono legate tramite i campi Chiave-> Chiave Esterna. Nelle nostre due tabelle, SID la Chiave Primaria nella tabella Studenti, e la Chiave Esterna nella tabella Valutazioni. A volte pu essere molto pi semplice utilizzare un tool come le Query di Microsoft Access per generare le stringhe SQL, specialmente quando si uniscono molteplici tabelle. L'esempio 5.2 la prima interrogazione che introduce JOIN.

Esempio 5.2: JOIN fra Studenti e Valutazioni

<html>
<head><title>Esempio 5.2</title></head>
<body>
<table width="350" border="1">
<tr>
   <td width="75">SID</td>
   <td width="200">Name</td>
   <td width="75">Exam 2</td>
</tr>
<%
openCN

'leggi sid, nome, cognome e esame2
'dove esame2 minore di 70


sql="SELECT Valutazioni.SID, " & _
    "Studenti.Nome, " & _
    "Studenti.Cognome, " & _
    "Valutazioni.Esame2 " & _
    "FROM Valutazioni " & _
    "INNER JOIN Studenti " & _
    "ON Valutazioni.SID = Studenti.SID " & _
    "WHERE Valutazioni.Esame2 < 70"

rs.Open sql, cn
do while not rs.EOF
%>

<tr>
   <td width="75"><%=rs("SID")%></td>
   <td width="200"><%=rs("Nome") & " " & rs("Cognome")%></td>
   <td width="75"><%=rs("Esame2")%></td>
</tr>
<%
   rs.MoveNext
loop
rs.Close
closeCN
%>

</table>
</body>

<< lezione precedente lezione successiva >>


Utenti connessi: 15624