0
我有这个查询,它通过名称搜索auctioneers,从多个表中获取数据。这个查询有什么问题吗?它返回一个结果两次,我不明白为什么
它的返回结果上两次,即使它使用“不同”,但我想不通这是怎么回事...
这将会是困难的,提供数据的样本,但我m希望有些SQL天才可以提供可能原因的建议...
SELECT DISTINCT a.id,a.name, al.city
FROM auctioneers a
LEFT JOIN auctioneersloc al ON al.auctioneerId = a.id
LEFT JOIN auctioneerscont ac ON ac.auctioneerId = a.id
WHERE a.name LIKE "%Jones%"
GROUP BY city
谢谢。
你为什么要'组',但没有做任何聚合? – JNK 2012-01-18 21:15:06
我要冒险猜测,“两次”你的意思不是(a.id,a.name,al.city)的整个组合,而只是(a.id,a.name)。这是完全可能的,因为查询在很多方面都是错误的。它按城市分组,并在每个城市中,您将获得一个* RANDOM * ID和名称。 DISTINCT适用于所有列,因此如果(a.id,a.name)存在于多个城市中,则可以获取两次。 – RichardTheKiwi 2012-01-18 21:16:30
你为什么要加入auctioneerscont?你没有选择它,它不是在你的组的子句... – 2012-01-18 21:19:49