将多行合并为一行并放入表MySQL中
对不起我的英语)我有三张桌子。下一种类型: 表1-用户将多行合并为一行并放入表MySQL中,mysql,sql,join,Mysql,Sql,Join,对不起我的英语)我有三张桌子。下一种类型: 表1-用户 -------------------------------- | id | email | password | -------------------------------- | 1 | 1 | 3 | | 2 | 1 | 4 | | 3 | 1 | 3 | | 4 | 1 | 4
--------------------------------
| id | email | password |
--------------------------------
| 1 | 1 | 3 |
| 2 | 1 | 4 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 5 | 2 | 3 |
| 6 | 2 | 4 |
| 7 | 2 | 3 |
| 8 | 2 | 4 |
--------------------------------
表2:分数
---------------------------
id | idUser | nameScore|
--------------------------------
| 1 | 1 | df |
| 2 | 1 | sa |
| 3 | 1 | as |
| 4 | 1 | 4 |
| 5 | 2 | 3 |
| 6 | 2 | 4 |
| 7 | 2 | 3 |
| 8 | 2 | 4 |
-------------------------------|
表3:付款
--------------------------------------------------
| id | idScorePayer |idScorePayee| money
--------------------------------------------------
| 1 | 1 | 2 | 1000
| 2 | 2 | 4 | 700
| 3 | 3 | 1 | 1500
| 4 | 4 | 3 | 9000
---------------------------------------------------
我试图输出的内容:
-----------------------------------------------
| id | emailPayer | emailPayee | money
-----------------------------------------------
| 1 | yellow@ | cookies@ |
| 2 | yellow@ | milk@ |
| 3 | yellow@ | cookies@ |
| 4 | yellow@ | milk@ |
| 5 | blue@ | cookies@ |
| 6 | blue@ | milk@ |
| 7 | blue@ | cookies@ |
| 8 | blue@ | milk@ |
-----------------------------------------------
我没有MySQL实例可供测试,我猜是在电子邮件表上,但我认为应该是这样的:
SELECT
users.id,
email1.email_name "emailPayer",
email2.email_addr "emailPayee",
payment.money
FROM
users
JOIN scores ON (users.id = scores.idUser)
JOIN payment ON (scores.id = payment.idScorePayer)
JOIN email email1 ON (scores.idScorePayer = email.id)
JOIN email email2 ON (scores.idSCorePayee = email.id)
下面的查询应该有效:
select u1.email as emailPayer, u2.email as emailPayee, amount
from users u1 join scores s1 on u1.id = s1.idUser
join payment on s1.id = payment.idScorePayer
join scores s2 on payment.idScorePayee = s2.idUser
join users u2 on u2.id = s2.idUser
你能把你的桌子安排得好一点吗?你的问题不清楚,从哪里可以得到黄色、蓝色、饼干、牛奶??请阅读,这里是一个学习如何提高问题质量和获得更好答案的好地方。电子邮件表未显示