我想将三个不同的sql表(users、details和system)链接在一起,并使用以下查询打印结果:
SELECT
users.user_id, users.user_email, system.date, system.time,
system.table_layout, details.party_size, details.children_no,
details.diets, details.occassion, details.more
FROM
users, system, details
WHERE
users.user_id = system.id = details.ID
ORDER BY
users.user_id
但是,它只正确地打印用户和系统信息,而不正确地显示details列—它只是重复其中的一个列。如何成功地将三个表链接在一起?因为目前只有两个连接
2条答案
按热度按时间2vuwiymt1#
也许您选择的ID命名只是混淆(不清楚是否
system.id
以及details.ID
两者都指users.user_id
但看起来您没有在正确的键上连接表。为了联接(链接)表,每个表都需要一个私钥(id)和一个外键(要联接的表的id)。
假设您的表具有以下架构:
用户(id、电子邮件等)
系统(id、用户id、日期、时间、表格布局)
详细信息(id、用户id、聚会大小、饮食等)
你可以加入他们
或者像john cappelletti建议的那样使用内部连接:
jexiocij2#
最好使用显式联接。