mysqlクエリは私を悩ませています。ユーザーが2つのバケット(ボックス)間を行き来することでユーザーをカテゴリに割り当てることができるJavaScriptがいくつかあります。最初のバケットは、2番目のバケット(カテゴリに割り当てられている)以外のすべての人である必要があります。2番目のバケットは、カテゴリ内の人々で構成されます。したがって、2番目のクエリ(カテゴリに割り当てられている)でプルされた人を除くすべての人をプルする最初のバケットのmysqlクエリが必要です。
私はすべての人の1つのテーブルと、カテゴリに割り当てられた2番目の人を持っています。(ここでは無視されるカテゴリの3番目のテーブルもあります。)次のコードは、2番目のバケット(カテゴリ内のグループ)に対して選択されたグループを返しますが、最初のバケットについては、人を含める場合に、特定のカテゴリにすでに割り当てられているグループのみをプルしますcatpeopleテーブルにも表示されない人。
問題はNULLまたは私の結合と関係があると思いますが、それを理解することはできません。何か提案をいただければ幸いです。
人
id | name
catpeople
id | catid | peopleid
最初のクエリは、2番目のクエリ以外のすべての人をプルする必要がありますが、catpeopleテーブルに表示される人だけをプルします。
$sql1 = "SELECT * FROM `people` c
LEFT JOIN `catpeople` c
on p.id = c.peopleid
WHERE catid <> '2'";
2番目のクエリは正常に機能します(カテゴリ内の人々を引っ張る)
$sql2 = "SELECT * FROM `people` p
LEFT JOIN `catpeople` c
on p.id = c.peopleid
WHERE catid = '2'";