gpt4 book ai didi

PHP MySQL - 如何获取 SELECT GROUP_CONCAT,GROUP_BY 两个表?

转载 作者:行者123 更新时间:2023-11-29 02:15:07 24 4
gpt4 key购买 nike

我有两个这样的数据库表,想像这样获取到我的网站(见截图)

enter image description here

但我只能取一张表。我不知道如何使用 group by 和 JOIN
这是我的代码

$sql = "SELECT photographer,GROUP_CONCAT(free_image)  
FROM free_images_table
GROUP BY photographer";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result))
{
$free_image = explode(',', $row['GROUP_CONCAT(free_image)']);

echo "<tr>";
echo "<td>".$row['photographer_id']."</td>"; ?>

<td>
<?php
for($i=0; $i < count($free_image); $i++ )
{
echo $free_image[$i];
}
?></td>

echo "</tr>";
}

特殊表可能没有摄影师(我的网站只需要freeimage,特殊图像是可选的。

最佳答案

这可以使用 LEFT JOIN 来完成(在 php 中添加列别名以简化操作)-

SELECT free_images_table.photographer, 
GROUP_CONCAT(DISTINCT free_images_table.free_image) as free_images,
GROUP_CONCAT(DISTINCT special_images_table.special_image) as special_images
FROM free_images_table
LEFT JOIN special_images_table
ON special_images_table.photographer = free_images_table.photographer
GROUP BY photographer

LEFT JOIN 当您在第一个表中有记录但在第二个表中并不总是匹配记录时使用

然后在 php 中,您将创建与免费图像单元相同的特殊图像单元

$free_image = explode(',', $row['free_images']);
$special_image = explode(',', $row['special_images']);
...

关于PHP MySQL - 如何获取 SELECT GROUP_CONCAT,GROUP_BY 两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41053299/

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