私がしようとしているのは、彼らが誰かを参照し、その人物がエントリーテーブルにもリストされるたびにエントリーをリストすることです。私が試した3つの異なるクエリは次のとおりです。このMySQLクエリで結果が返されないのはなぜですか?
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID
INNER JOIN (SELECT DISTINCT Email FROM Entries c ON b.Email = c.Email)
WHERE a.ID = 47667
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID AND b.Email IN (SELECT DISTINCT Email FROM Entries)
WHERE a.ID = 47667
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID
WHERE b.Email IN (SELECT DISTINCT Email FROM Entries) AND a.ID = 47667
3つの結果はすべて1つのエントリです。
私がない場合:
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID
WHERE a.ID = 47667
20があるので、私は20のエントリのリストを取得するには、しかし、他のクエリがになっているものであるエントリデータベースにある4のみが存在し、友人を呼びフィルタはこれらの20から、しかしそれは1つの結果を返します。
誰でも正しい方向に向けることができますか?
ありがとうございました。少し再構造化
最初のクエリで閉じ括弧が欠落しているようです(これはあなたの質問の誤植であると仮定しています)。一見、それはokと思われます...あなたはNULLの電子メール値を持っていますか? –
申し訳ありませんが、質問のタイプミスでした。すべてのクエリが機能し、4を返すべきときに1つの値しか返しません。 – fanfavorite
'DISTINCT Email FROM Entries'を実行すると何が得られますか? –