簡體   English   中英

如何在mysql查詢中連接行

[英]how do I concatenate rows in a mysql query

table 1
--------
pid | name
1    someone
2    another


table2
--------
bid | valu
1     drum
2     guitar
3     flower
4     cake


table3
------
id | pid | bid | pref
1    1     3     yes
2    1     1     maybe
3    1     2     no
4    2     4     definately
5    2     2   
6    2     3     no

因此,您可以看到我有3個簡單的表,其中第三個用於創建表1和表2之間的映射以及一些其他數據。 現在我需要編寫一個查詢來顯示基於pid的連接字符串中的valupref

因此,對於pid = 1 ,預期的輸出就像flower yes, drum maybe, guitar no ....所以我該如何寫這個查詢?

我嘗試過(幾乎是盲目猜測):

SELECT opa.name, GROUP_CONCAT(CONCAT(opb.valu,' ',opc.pref) SEPARATOR ',') AS myChoice
 From
     table_1 opa
 INNER JOIN table_3 opc ON opc.pid = opa.pid
 INNER JOIN table_2 opb ON opb.bid = opc.bid

任何幫助表示贊賞。

你的查詢是對的,你只是忘記了GROUP BY

 SELECT opa.name, GROUP_CONCAT(CONCAT(opb.valu,' ',opc.pref) SEPARATOR ',') AS myChoice
 From
 table1 opa
 INNER JOIN table3 opc ON opc.pid = opa.pid
 INNER JOIN table2 opb ON opb.bid = opc.bid
 group by opc.pid

在這里演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM