Mysql连接查询不会返回所有行

时间:2014-05-27 19:11:11

标签: mysql join inner-join

我有一个活动软件。第一个表存储了注册活动的个人:EventIndividuals。我有第二张桌子,存放他们参加活动时选择作为礼物的T恤:EventIndividualShirtXref

当我运行以下查询以查看有多少人参加第一个事件时,它会正确返回31行:

SELECT Id
FROM EventIndividuals
WHERE EventId = 1

然后,当我运行第二个查询将它们与衬衫配对时,它只返回22行:

SELECT *
FROM EventIndividualShirtXref
WHERE EventIndividualId IN(SELECT Id FROM EventIndividuals WHERE EventId = 1)

我还尝试使用连接运行下一个查询,它仍然只返回22行:

SELECT esx.*
FROM EventIndividualShirtXref esx
INNER JOIN EventIndividuals ei
ON esx.EventIndividualId = ei.Id
WHERE ei.EventId = 1 

我检查了索引,并且列已正确编入索引。 是否提供了足够的信息来确定31行被切割为22的原因? 这在我之前从未发生过,这没有任何意义。

0 个答案:

没有答案