繁体   English   中英

在MYSQL PHP中获取与GROUP_CONCAT相关的数据

[英]To get data related to the GROUP_CONCAT in MYSQL PHP

表格1

表格1

表2

表2

这是通过使用此查询得到的那两个表的结果:

SELECT t1.*, GROUP_CONCAT(t2.content_id) 
FROM news_categories t1 
LEFT JOIN news_content t2 
    ON t2.cat_ids = t1.cat_id 
GROUP BY t1.cat_id

结果产生

结果

如何从与content_id相关的result(table) GROUP_CONCAT(t2.content_id)获取table2中的信息?

并使用PHP从table2中检索这些数据

好吧,您在这里有一对多的关系。 意味着表1中的一行可以与表2中的0-n行相关。

如果按表1的主键进行分组,则将结果限制为表1中每一行的一个结果行,通过使用GROUP_CONCAT(table2_col)您可以将table2_column的所有匹配行连接在一起,默认情况下使用逗号分隔。

玩以下查询:

SELECT
     t1.*, 
     GROUP_CONCAT(t2.content_id) AS content_ids,
     GROUP_CONCAT(t2.title) AS content_titles
FROM 
    news_categories t1 
        LEFT JOIN news_content t2 ON t2.cat_ids = t1.cat_id 
GROUP BY t1.cat_id

要么

SELECT
     t1.*, 
     t2.*
FROM 
    news_categories t1 
        LEFT JOIN news_content t2 ON t2.cat_ids = t1.cat_id 

我建议写出所需的列,而不要使用。*

编辑

要分离php中的串联值,请看看explode

您照常获取数据,例如

$result = mysqli_query( $query );
while ( $row = mysqli_fetch_assoc( $result ) ) {
    print_r( $row );
}

看看这个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM