當 join 進來的數據也是多個以上,如何顯示?

SELECT
          t.name AS tname
        FROM `product` as p
        JOIN
          `product_theme` as pt ON pt.prod_id = p.prod_id
        JOIN
          `theme` as t ON t.theme_id = pt.theme_id

theme
clipboard.png

product_theme
clipboard.png

也就是說當 product 有幾個 theme 時
在 product_theme 的 prod_id 就會有幾筆(如圖)
現在有個問題是
因為我要顯示的 tname 是多筆的
但是這樣導致我沒辦法顯示多筆
我直接透過 while ($row...mysqli_fetch_array) $row['tname'] 顯示只會有一筆(prod_id 41的會有兩筆 theme)

clipboard.png

這樣我該怎麼顯示和改寫才對?

阅读 2.2k
1 个回答

根据你的需求,可以用group_concat函数,按prod_id分组显示,SQL类似如下:

select proid_id,group_concat(t.name SEPARATOR ';') as tname from product as p ..... 结尾用 group by prod_id

这样出来的结果类似:

proid_id      tname
...
40            小松菜奈的世界
41            夏天最好暖暖包;小松菜奈的世界
...

这样程序中$orw['tname']获取的就是"夏天最好暖暖包;小松菜奈的世界",可以用explode函数分割为数组使用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题