我只需要從三個表中獲取唯一的行。我如何做到這一點?如何從連接中刪除重複的行(SQL)
我有一個SQL查詢:
SELECT *
FROM l_req
LEFT JOIN p_req ON (p_req.uid = l_req.uid)
LEFT JOIN r_req ON (r_req.uid = l_req.uid)
WHERE l_req.uid = 100931362
表架構:
Table l_req
id column2 column3 uid
1 2 3 100931362
2 3 4 100931362
3 4 5 100931362
Table p_req
id column2 column3 uid
1 6 5 100931362
等
查詢結果:
id column2 column3 uid id1 column21 column31 uid1
1 2 3 100931362 1 6 5 100931362
2 3 4 100931362 1 6 5 100931362
3 4 5 100931362 1 6 5 100931362
=>我具有由重複的行一個JOIN。
我需要的結果是這樣的:
id column2 column3 uid id1 column21 column31 uid1
1 2 3 100931362 1 6 5 100931362
2 3 4 100931362 NULL NULL NULL NULL
3 4 5 100931362 NULL NULL NULL NULL
你不能用左連接做到這一點。如果您的條件匹配多次,他們也會加入多次。你能解釋爲什麼你需要爲以後的結果空值?如果出於性能方面的原因,也許你應該考慮從多個表中選擇而不是聯合,聯合查詢甚至是臨時表,以便更好地適應。 –
你能解釋你想做什麼?也許有人可以用另一種解決方案提供有用的答案。 – ranisalt
@scrowler,我只需要唯一的值,所以我想獲得一個NULL值。我希望你能用有效的查詢來幫助我。 向問題添加了更多信息。 – owl