将多行合并为一行并进入表MySQL

时间:2016-03-03 00:59:05

标签: mysql sql join

我很抱歉我的英语)我有3张桌子。下一个类型:

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

2 个答案:

答案 0 :(得分:0)

我没有要测试的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)

答案 1 :(得分:0)

以下查询应该有效:

if (index == "share") {
    memlist.append($('<li class="share-tools__item share-tools__item--extended">' +
         '<div class="share-tools-extended is-below-middle">' +
         '<span class="share-tools__tool share-tools__tool--share">' +
         '<span class="share-tools__tool__text">' + value +
         '</span>' +
         '<div class="share-tools-extended__caret"></div>' +
         '</span>' +
         '<ul class="share-tools-extended__list">'+
         '</ul>' +
         '</div>' +
         '</li>'));

    var innerList = $('ul.share-tools-extended__list');
    $.each(socials, function(index, value) {
        // fill in this part with the exact markup you need
        innerList.append($('<li>STUFF</li>'));
    });
}
相关问题