我試圖將DS中的名稱與A中的ID匹配,並且它們只能通過基本上是客戶ID和項目ID的DA連接。我還需要顯示沒有購買記錄的項目。SQL使用OR時重複結果OR
我已分別用兩種條件下嘗試, 部分A
SELECT DS.name,A.id
FROM DS,
A,
DA
WHERE DS.id=DA.id AND
A.id=DA.id;
B部分
SELECT name
FROM DS,
WHERE DS.id NOT IN (
SELECT id FROM DA);
然後,當我使用以下代碼
SELECT DS.name,A.id
FROM DS,
A,
DA
WHERE (DS.id=DA.id AND
A.id=DA.id) OR
DS.id NOT IN (
SELECT id FROM DA);
部分A返回4077個結果B部分返回820,但最終的代碼在我終止之前給了我140000 d it。 我知道我可以通過使用DISTINCT擺脫他們,但我想知道這個原因以及如何避免發生這種事情。