Iは、ユーザのテーブルを持っているから、その行を削除するかどうかをチェック、Iは、ユーザごとに多くの購入で、購入のテーブルを持っています。MySQLは、関連テーブルの任意の行に値が一致し、その結果
私は、特定の製品を購入していないすべてのユーザーを選択します。
がある私は理解に苦しんでいます:ユーザーの購入は、選択と一致していることならばどのように各ユーザーのために私がチェックした後、私は結果から、これらのユーザーを除外する方法について説明します。
Iは、ユーザのテーブルを持っているから、その行を削除するかどうかをチェック、Iは、ユーザごとに多くの購入で、購入のテーブルを持っています。MySQLは、関連テーブルの任意の行に値が一致し、その結果
私は、特定の製品を購入していないすべてのユーザーを選択します。
がある私は理解に苦しんでいます:ユーザーの購入は、選択と一致していることならばどのように各ユーザーのために私がチェックした後、私は結果から、これらのユーザーを除外する方法について説明します。
これは簡単なSELECT
声明、参加して、副選択によって行われるべきです。私のExamplequeryは、特定のアイテムを購入していないすべてのユーザーを返します。クエリ内の
SELECT DISTINCT User.Id, User.Username
FROM User
LEFT JOIN Purchases ON User.Id = Purchase.UserId
WHERE
(SELECT DISTINCT COUNT(User.Id)
FROM User
LEFT JOIN Purchases ON User.Id = Purchase.UserId
WHERE Purchase.ItemId = ParameterItemId) = 0
DISTINCT
には二重のエントリが存在しないことを確認します。 あなたは私たちにテーブルの表情を教えてくれていないので、私はあなたにこの擬似コードを与えることができます。最初の試行では機能しない可能性があり、結合と副選択がどのように機能するかを理解するのに役立ちます。
JOIN
について詳しくは、thisのドキュメントをご覧ください。副選択の例をもっと見るには、thisを参照してください。
私は今、ありがとう、ありがとう。 – seventeen