Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多行合并为一行并放入表MySQL中_Mysql_Sql_Join - Fatal编程技术网

将多行合并为一行并放入表MySQL中

将多行合并为一行并放入表MySQL中,mysql,sql,join,Mysql,Sql,Join,对不起我的英语)我有三张桌子。下一种类型: 表1-用户 -------------------------------- | id | email | password | -------------------------------- | 1 | 1 | 3 | | 2 | 1 | 4 | | 3 | 1 | 3 | | 4 | 1 | 4

对不起我的英语)我有三张桌子。下一种类型:

表1-用户

--------------------------------
| 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

你能把你的桌子安排得好一点吗?你的问题不清楚,从哪里可以得到黄色、蓝色、饼干、牛奶??请阅读,这里是一个学习如何提高问题质量和获得更好答案的好地方。电子邮件表未显示