Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 - Fatal编程技术网

Mysql 用三个表连接和分组

Mysql 用三个表连接和分组,mysql,Mysql,表格详情: 我的问题是: 但我在d1,d2,d11,d22中得到了多个数据,因为第二个左连接 预期产出: 实际上,我正在使用jdbc将数组数据从api存储到mysql。我在三个表中插入了数据。现在,我必须检索这些数据并形成数组格式,然后将其发送到web api,这里有人知道怎么做吗?我需要进行嵌套查询吗?请添加您为实现所需而做的努力,共享您的源代码。感谢@agtabesh,我在提出正确问题方面取得了更大的进展,格式是clearSee GROUP_CONCAT-尽管我会在应用程序代码中处理此类问题

表格详情:

我的问题是:

但我在d1,d2,d11,d22中得到了多个数据,因为第二个左连接

预期产出:


实际上,我正在使用jdbc将数组数据从api存储到mysql。我在三个表中插入了数据。现在,我必须检索这些数据并形成数组格式,然后将其发送到web api,这里有人知道怎么做吗?我需要进行嵌套查询吗?

请添加您为实现所需而做的努力,共享您的源代码。感谢@agtabesh,我在提出正确问题方面取得了更大的进展,格式是clearSee GROUP_CONCAT-尽管我会在应用程序代码中处理此类问题。如上所述,认真考虑应用程序代码中的数据显示问题。谢谢草莓,它实际上与两个表一起工作,如果我添加另一个左边,如我的应用程序代码中所示的x表值a1,b1,c1,a1,b1,c1像那样返回两次,我将在new.Cool中上传错误-记住,当投稿人开始注意到你的投票记录时,他们可能不愿意在将来提供帮助。
SELECT t1.id
     , GROUP_CONCAT(t2.data ORDER BY t2.data) x
  FROM Table1 t1 
  LEFT 
  JOIN Table2 t2 
    ON t2.id = t1.id 
 GROUP 
    BY t1.id;
+----+----------+
| id | x        | 
+----+----------+
| 15 | A1,B1,C1 |
| 16 | H        |
| 17 | NULL     |
+----+----------+
   select 
            t1.user,
            t1.id,
            group_concat(t2.data1 ) d1,
            group_concat( t2.data2) d2,
            group_concat( t3.data11 ) d11,
            group_concat(t3.data22 ) d22
        from table1 t1
        left join table2 t2 
                on   t2.id = t1.id
        left join table3 t3
                on t3.id = t1.id
                where t1.user='bob' group by t1.id;
+-------+------+------------+-----------+---------------+---------------+
|  user |   id |     d1     |     d2    |       d11     |     d22       |
+-------+------+------------+-----------+---------------+---------------+
|  bob  |   1  |   a,b,b    | a1,b1,c1  |  a10,b10,c10  |  a11,b11,c11  |
|  bob  |   2  |   a,b      | d1,e1     |  d10,e10      |  d11,e11      |
+-------+------+------------+-----------+---------------+---------------+
SELECT t1.id
     , GROUP_CONCAT(t2.data ORDER BY t2.data) x
  FROM Table1 t1 
  LEFT 
  JOIN Table2 t2 
    ON t2.id = t1.id 
 GROUP 
    BY t1.id;
+----+----------+
| id | x        | 
+----+----------+
| 15 | A1,B1,C1 |
| 16 | H        |
| 17 | NULL     |
+----+----------+
SELECT t1.user,
       t1.id,
       t2.d1,
       t2.d2,
       t3.d11,
       t3.d22
       FROM table1 t1
            LEFT JOIN (SELECT t2.id,
                              group_concat(t2.data1) d1,
                              group_concat(t2.data2) d2
                              FROM table2 t2
                              GROUP BY t2.id) t2
                      ON t2.id = t1.id
            LEFT JOIN (SELECT t3.id,
                              group_concat(t3.data11) d11,
                              group_concat(t3.data22) d22
                              FROM table3 t3
                             GROUP BY t3.id) t3
                      ON t3.id = t1.id
      WHERE t1.user = 'bob';