gpt4 book ai didi

php - mysql:对结果进行分组,限制它们并在一个查询中连接到其他表

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

我有一个在线应用程序,我需要一种仪表板(以使用空白)。

操作使用了三个表:

1.) categories: id, name
2.) entries: id, name, description, category_id, created, modified
3.) entryimages: id, filename, description, entry_id

在仪表板上,我想为每个类别显示 4-5 个条目(带有缩略图,因此我需要连接到 entryimages 表和类别表)。

我通读了一些文章(以及 s.o. 上的主题),例如: http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

但我仍然没有做对,我尝试首先提取所有类别,并为每个类别构建一个查询,并使用“所有联合”将它们附加到一个,但这是行不通的。我使用的最后一个版本的代码:

foreach($categories as $id => $name)
{
$query .= "SELECT `entry`.`id`,
`entry`.`name`,
`entry`.`description`,
`entry`.`category_id`,
`entry`.`created`,
`entry`.`modified`,
`entryimages`.`filename`,
`entryimages`.`description`
FROM `entries` as `entry` LEFT JOIN `entryimages` ON `entryimages`.`entry_id` = `entry`.`id`
WHERE `entry`.`category_id` = $id ";

if($i < count($groups))
{
$query .= 'UNION ALL ';
}

$i++;
}

$result = mysql_query($query);

有谁知道完成这个操作的最佳权利是什么?

谢谢 1000

最佳答案

如果你想在仪表板上显示三个条目,你的做法是错误的。如果我的理解是正确的,整个查询将类似于

"SELECT `entry`.`id`,
`entry`.`name`,
`entry`.`description`,
`entry`.`category_id`,
`entry`.`created`,
`entry`.`modified`,
`entryimages`.`filename`,
`entryimages`.`description`
FROM `entries` as `entry`
INNER JOIN categories
ON (entry.category_id = categories.id)
LEFT JOIN (SELECT * FROM `entryimages` WHERE `entry_id` = `entry`.`id` LIMIT 1) AS `entryimages`
ON `entryimages`.`entry_id` =`entry`.`id`
ORDER BY `entry`.`created` DESC LIMIT 5";

关于php - mysql:对结果进行分组,限制它们并在一个查询中连接到其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941681/

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