Ho due tabelle: pq e pe. Sto provando a tabella LEFT OUTER JOIN
sinistra (pq) sulla tabella di destra (pe).MySQL left outer join with where clausola - restituisce righe non corrispondenti
- pq ha primario colonna chiave id
- pe ha due colonne chiave primaria, quindi potrebbe avere molti pqid del o nessuno
- pe colonna .UID deve essere usato per estrarre solo i dati rilevanti (
WHERE pe.uid = "12345"
) - pe. i dati devono essere uniti a ogni pq fila .ID
Ecco come tavoli guardano:
pq:
id | data
1 | "abc"
2 | "efg"
pe:
pqid | uid | data
2 | 54321 | "uvw"
2 | 12345 | "xyz"
posso utilizzare la seguente query per abbinare prime 2 file di pq .id di pe .pqid
SELECT pq.id, pq.data, pe.data FROM pq
LEFT OUTER JOIN pe ON pq.id = pe.pqid
ORDER BY pq.id LIMIT 2
Ottengo:
pq.id | pq.data | pe.data
1 | "abc" |
2 | "efg" | "uvw"
Ma se io uso l'istruzione WHERE in questo modo:
SELECT pq.id, pq.data, pe.data FROM pq
LEFT OUTER JOIN pe ON pq.id = pe.pqid
WHERE pe.uid='12345'
ORDER BY pq.id LIMIT 2
Ho solo una riga con corrispondenti pe .pqid E pe .UID:
pq.id | pq.data | pe.data
2 | "efg" | "xyz"
Quindi, con la WHERE clausola ottengo la destra pe .data, ma non ho pq righe che non hanno pq .id corrispondenza pe .pqid
ho bisogno di ottenere questo:
pq.id | pq.data | pe.data
1 | "abc" |
2 | "efg" | "xyz"