SQLite entra a far parte
SQLite èunisce clausola di combinare due o più tabelle nei record del database.Join è un valore comune dalla combinazione di due campi nei mezzi tabella.
SQL definisce tre tipi principali di connessioni:
Cross-connect - CROSS JOIN
En - INNER JOIN
collegamento esterno - outer join
Prima di continuare, supponiamo che ci sono due tavoli ditta e del reparto. Abbiamo visto usato per riempire COMPANY TABLE INSERT. Ora supponiamo record della tabella COMPANY elencati di seguito:
NOME ID Età Indirizzo STIPENDIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norvegia 20000.0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 85.000,0 6 Kim 22 Sud-Hall 45.000,0 7 James 24 Houston 10000.0
Un altro tavolo è SERVIZIO, è definita come segue:
CREATE TABLE DIPARTIMENTO ( ID INT PRIMARY KEY NOT NULL, DEPT CHAR (50) NOT NULL, EMP_ID INT NOT NULL );
Quanto segue è una tabella DEPARTMENT istruzione INSERT pieno:
INSERT INTO REPARTO (ID, DEPT, EMP_ID) VALORI (1, 'IT Fatturazione', 1); INSERT INTO REPARTO (ID, DEPT, EMP_ID) VALORI (2, 'Engineering', 2); INSERT INTO REPARTO (ID, DEPT, EMP_ID) VALORI (3, 'Finanza', 7);
Infine, abbiamo la seguente lista di record della tabella DEPARTMENT:
ID DEPT EMP_ID ---------- ---------- ---------- 1 di fatturazione 1 2 Engineerin 2 3 Finanza 7
Cross-connect - CROSS JOIN
Cross-connect (CROSS JOIN) ogni riga della prima tabella con ogni riga della seconda tabella in modo che corrisponda. Se sia la tabella di ingresso colonne x ed y, rispettivamente la tabella risultato ha x + y colonne. Dal momento che il cross-connect (CROSS JOIN) può produrre un grande tavolo, è necessario prestare attenzione quando si utilizza solo quando appropriato.
Ecco la sintassi per il cross-connect (CROSS JOIN) di:
SELECT ... FROM tabella1 CROSS JOIN tabella2 ...
Sulla base della tabella sopra, possiamo scrivere un cross-connect (CROSS JOIN), come segue:
sqlite> EMP_ID SELECT, NOME, UFF da azienda CROSS JOIN DIPARTIMENTO;
La query sopra produrrà i seguenti risultati:
EMP_ID NOME DEPT ---------- ---------- ---------- Fatturazione 1 Paul IT 2 Paul Engineerin 7 Paul Finanza Fatturazione 1 Allen IT 2 Allen Engineerin 7 Allen Finanza Fatturazione 1 Teddy IT 2 Teddy Engineerin 7 Teddy Finanza Fatturazione 1 Mark IT 2 Mark Engineerin 7 Mark Finanza Fatturazione 1 David IT 2 David Engineerin 7 David Finanza Fatturazione 1 Kim IT 2 Kim Engineerin 7 Kim Finanza Fatturazione 1 James IT 2 James Engineerin 7 James Finanza
En - INNER JOIN
collegamento interno (INNER JOIN) per creare una nuova tabella dei risultati combinare due tabelle (Table1 e Tabella 2) aderire valori della colonna predicato. Le query saranno TABLE1 e Table2 in ogni riga in ogni riga viene comparato per trovare tutte le righe che soddisfano la Unisciti alle coppie predicato di corrispondenza. Quando si è soddisfatti unire i valori di colonna predicato A e B ogni riga corrispondente del risultato verrà fusa in una riga.
collegamento interno (INNER JOIN) è il tipo più comune di collegamento è il tipo di connessione predefinito. parola chiave interna è opzionale.
Ecco la sintassi per un inner join (INNER JOIN) di:
SELECT ... FROM tabella1 [INTERNO] JOIN tabella2 ON conditional_expression ...
Al fine di evitare la ridondanza e mantenere la formulazione breve, è possibile utilizzare l'istruzione nella connessione espressioneutilizzando (INNER JOIN) condizioni.Questa espressione indica un elenco di uno o più colonne:
SELECT ... FROM tabella1 ISCRIVITI table2 UTILIZZO (column1, ...) ...
naturale connessione (JOIN NATURALE) è simile adunirsi ... utilizzando, ma sarà uguale valore tra il valore delle due tabelle in ogni colonna verificare automaticamente la presenza di:
SELECT ... FROM tabella1 join naturale table2 ...
Sulla base della tabella sopra, possiamo scrivere un join interno (INNER JOIN), come segue:
sqlite> selezionare EMP_ID, NOME, Dipartimento della ditta INNER JOIN DIPARTIMENTO ON COMPANY.ID = DEPARTMENT.EMP_ID;
La query sopra produrrà i seguenti risultati:
EMP_ID NOME DEPT ---------- ---------- ---------- Fatturazione 1 Paul IT 2 Allen Engineerin 7 James Finanza
collegamento esterno - outer join
collegamento esterno (outer join) è un inner join (INNER JOIN) estensioni. Sebbene standard SQL definisce tre tipi di outer join: sinistra, destra, pieno, ma SQLite supporta soloa sinistra outer join (LEFT OUTER JOIN).
collegamento esterno (outer join) le condizioni e le modalità di collegamento interno (INNER JOIN) sono gli stessi, l'uso di ON dichiarato, L'UTILIZZO parola chiave NATURALE o espressione. tabella dei risultati iniziali è calcolato nello stesso modo. Una volta che i calcoli sono stati completati connessione primaria, connessioni esterne (outer join) da uno o due tabelle non sono collegati a qualsiasi linea nell'unione, outer join colonna con un valore NULL, il fissaggio sulla tabella dei risultati.
Ecco la sintassi per un join esterno sinistro (LEFT OUTER JOIN) di:
SELECT ... FROM tabella1 LEFT OUTER JOIN tabella2 ON conditional_expression ...
Al fine di evitare la ridondanza e mantenere la formulazione breve, è possibile utilizzare leutilizzando espressioni istruzione join esterno (outer join) condizioni.Questa espressione indica un elenco di uno o più colonne:
SELECT ... FROM tabella1 LEFT OUTER JOIN Tabella 2 UTILIZZO (column1, ...) ...
Sulla base della tabella sopra, possiamo scrivere un collegamento esterno (outer join), come segue:
sqlite> EMP_ID SELECT, NOME, UFF da azienda LEFT OUTER JOIN DIPARTIMENTO ON COMPANY.ID = DEPARTMENT.EMP_ID;
La query sopra produrrà i seguenti risultati:
EMP_ID NOME DEPT ---------- ---------- ---------- Fatturazione 1 Paul IT 2 Allen Engineerin Teddy contrassegno David Kim 7 James Finanza