我想要做的是每次引用某人时列出一个条目,并且该人员也列在条目表中。我试过的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个结果。
任何人都可以在正确的方向指向我吗?
谢谢。
它看起来像你错过了在第一个查询一个右括号(我假定这只是你的问题中一个错字)。乍一看,它看起来不错...你有任何NULL电子邮件值? –
对不起,这是一个错字。所有查询的工作,他们只返回1值,当它应该返回4. – fanfavorite
如果你只是运行'SELECT DISTINCT Email FROM Entries'你会得到什么? –