私は「グループ」と呼ばれるテーブルと「サブスクリプション」と呼ばれる他のテーブルを持っています。mysqlにないところのクエリ
ユーザーが購読していないすべてのグループを戻したいとします。
基本的にこれは私が否定する条件である(のは、ID = 1のユーザのために仮定しましょうグループがアクティブ化されているかどうか、ステータスはちょうどチェックです):
SELECT *
FROM groups g
LEFT
JOIN subscriptions s
ON s.groups = g.id
WHERE g.status = 1
AND s.user = 1
このクエリは、すべてのグループを選択し、ユーザーが購読していた場所が、どこにいないのかが必要です。私の問題は、彼が購読していないときにこのユーザーに関連するテーブルには何もないので、私が何かのようなものを使用すれば、私は必要のないものを返すだろうということです。
私はNOT INまたはNOT EXISTSを使用して考えましたが、動作させることはできません。
皆さんはすばやく効果の高いソリューションをお持ちですか?私はuser
は本当に私は引用符を削除する理由である数、であることを推測してい
SELECT *
FROM `groups` G LEFT JOIN
`subscriptions` S
ON G.id = S.groups AND S.user = 1
WHERE G.status = '1';
: はON
句へ二テーブル上の条件非常
に関連したレコードを取得する代わりに
LEFT JOIN
のINNER JOIN
を使用することができます - 形式のテキストとして(画像ではありません) – jarlh