SQL同语句双内连接查询返回0结果问题求助
问题分析与解决方案
嘿,我一眼就发现你这条SQL语句里的关键问题啦,这正是导致查询返回0结果的原因:
你在第二个内连接里给players表起了别名play,但关联条件却依然用了原表名players.Player_number,而不是别名对应的play.Player_number。这就意味着你实际上是在让doubles_ladder.player_number2和同一个players表的Player_number做匹配(和第一个连接的逻辑重复了),而不是关联到另一行玩家记录,自然找不到符合条件的数据。
修正后的SQL代码
SELECT doubles_ladder.*, players.*, play.* FROM doubles_ladder JOIN players ON doubles_ladder.player_number = players.Player_number JOIN players AS play ON doubles_ladder.player_number2 = play.Player_number
额外排查建议
- 先单独验证第一个连接是否能返回有效结果,比如执行:
确认这个基础关联逻辑是通顺的。SELECT * FROM doubles_ladder JOIN players ON doubles_ladder.player_number = players.Player_number - 再检查第二个连接的条件是否存在匹配数据:
如果这个查询也返回0结果,说明SELECT * FROM doubles_ladder WHERE EXISTS (SELECT 1 FROM players WHERE Player_number = doubles_ladder.player_number2)doubles_ladder里的player_number2值在players表中没有对应记录,这时候要注意检查两个字段的数据是否一致(比如有没有大小写差异、多余空格或者数据类型不匹配的情况)。
内容的提问来源于stack exchange,提问作者golffor1
相关产品推荐
相关产品推荐

