gpt4 book ai didi

php - 如何组合多对多表中所有值的 select 语句

转载 作者:行者123 更新时间:2023-11-29 13:13:00 25 4
gpt4 key购买 nike

我正在研究一个现有的产品数据库,试图清理其中的内容。我有下表:

表格

<products> id, title
<keywords> id, title
<product_has_keyword> product_id, keyword_id

当我想生成产品列表时,我使用以下代码:

SELECT * FROM products;

然后对于每个产品:

SELECT k.title FROM keywords k, product_has_keyword phk WHERE k.id = phk.keyword_id AND phk.id = ?

如何将此代码更改为单个 SELECT,除了“id、标题、关键字”等关键字(以空格分隔)之外,它还可能返回产品?

如(1、“锤子”、“工具家手”)、(2、“ blender ”、“厨房家”)等...

最佳答案

您可以使用GROUP_CONCAT但请注意,它对组有字符限制

SELECT p.id, p.title ,GROUP_CONCAT(k.title SEPARATOR ' ') `keywords`
FROM
products p
LEFT JOIN product_has_keyword phk ON(p.id = phk.product_id)
LEFT JOIN keywords k ON (k.id = phk.keyword_id )
WHERE phk.id = ?
GROUP BY p.id

关于php - 如何组合多对多表中所有值的 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21838632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com