我有一个包含三个表的简单数据库:
其中贡献是两个用户和付款表之间的关系表。我的问题是,当执行SQL语句来检索关系属性(例如'paid'值 - 并因此在语句中包含contrib表时),查询的结果似乎返回两次。例如,SELECT * FROM user, payment, contributes;
生成:
SELECT * FROM user, payment;
产生:
我唯一的猜测是,SELECT
语句只是将用户的每一行与付款的每一行组合在一起贡献< / strong>,很像电源组?
原谅我,如果我遗漏任何明显的东西,任何帮助都会非常感激。此外,为图像中奇怪的表名格式化道歉,这就是phpMyAdmin如何导出它们!
答案 0 :(得分:0)
SELECT u.id, u.email, u.first_name, u.last_name, c.host, c.paid, p.name, p.total, p.portion
FROM user u
INNER JOIN contributes c
ON u.id = c.user_id
INNER JOIN payment p
ON c.payment_id = p.id