如何通过关联ID多表查询指定列?SQL查询无结果求修正
问题分析与解决方案
你的查询语句查不到结果的核心原因是WHERE子句的关联条件完全错误:你把字符串类型的movieName、location分别和整数类型的movieID、theatreID做等值匹配,逻辑不成立,自然返回空结果。
要实现用movieName替代movieID、location替代theatreID查询Schedule数据的需求,需要用正确的关联条件将三张表连接起来,以下是两种可行的写法:
写法1:显式INNER JOIN(推荐,可读性更强)
scheduleQuery = ''' SELECT scheduleID, movieName, location, date, time FROM Schedule INNER JOIN Movies ON Schedule.movieID = Movies.movieID INNER JOIN Theatre ON Schedule.theatreID = Theatre.theatreID '''
写法2:隐式连接(逗号分隔表加正确WHERE条件)
scheduleQuery = ''' SELECT scheduleID, movieName, location, date, time FROM Schedule, Movies, Theatre WHERE Schedule.movieID = Movies.movieID AND Schedule.theatreID = Theatre.theatreID '''
这两种写法逻辑一致:通过Schedule表中的movieID关联Movies表获取对应的movieName,通过theatreID关联Theatre表获取对应的location,最终返回你需要的字段。
内容的提问来源于stack exchange,提问作者P4RK3R
相关产品推荐
相关产品推荐

