12
我有兩個表:pq和pe。我正在嘗試LEFT OUTER JOIN
左表(pq)右表(pe)。MySQL左外連接where子句 - 返回不匹配的行
- PQ有主鍵列ID
- PE有兩列主鍵,所以它可能有許多pqid的或無
- PE .uid列必須使用僅提取相關數據(
WHERE pe.uid = "12345"
) - pe .data應該加入到每個pq .ID行
下面是桌子的樣子:
pq:
id | data
1 | "abc"
2 | "efg"
pe:
pqid | uid | data
2 | 54321 | "uvw"
2 | 12345 | "xyz"
我可以使用下面的查詢,以匹配前兩排PQ .ID到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
我收到:
pq.id | pq.data | pe.data
1 | "abc" |
2 | "efg" | "uvw"
但是,如果我使用WHERE語句是這樣的:
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
我只得到一個行相匹配PE .pqid和PE .uid:
pq.id | pq.data | pe.data
2 | "efg" | "xyz"
於是用WHERE子句我得到正確的pe .data,但我沒有得到pq行沒有pq .ID匹配PE .pqid
我需要得到這個:
pq.id | pq.data | pe.data
1 | "abc" |
2 | "efg" | "xyz"