mysql查詢令我煩惱。我有一些JavaScript,讓用戶通過在兩個桶(盒)之間來回移動它們來將人員分配給一個類別。第一個桶應該是除第二個桶(分配給類別)之外的所有人。第二個桶由一個類別中的人員組成。因此,我需要一個用於第一個桶的mysql查詢,該查詢抽取除第二個查詢(分配給類別)中拉出的所有人之外的所有人。MYSQL語法連接不等於
我有一個所有人的表和第二個分配到類別的人。 (這裏還有第三個類別被忽略的表格)。下面的代碼返回第二個存儲區(類別中的那些存儲)的選定組,但是對於第一個存儲桶,只有當我希望它包含人員誰甚至不出現在貓人桌上。
我認爲問題與NULL或我的連接有關,但無法弄清楚。希望任何建議:
人
id | name
catpeople
id | catid | peopleid
首先查詢應該把所有的人,除了那些在第二個查詢,但只拉人誰在catpeople表中顯示出來。
$sql1 = "SELECT * FROM `people` c
LEFT JOIN `catpeople` c
on p.id = c.peopleid
WHERE catid <> '2'";
第二查詢工作正常工作(拉類別的人)
$sql2 = "SELECT * FROM `people` p
LEFT JOIN `catpeople` c
on p.id = c.peopleid
WHERE catid = '2'";
在這種情況下並不重要。 'WHERE catid <>'2'過濾掉'cat'中沒有相應記錄的'people'中的記錄,所以'LEFT JOIN'與'INNER'的行爲完全相同(在這種情況下,再次) – a1ex07