gpt4 book ai didi

php - 如何从具有相同 catID 的表中获取一个结果并从另一个表中获取多个结果?

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

我正在尝试建立一个我不知道的论坛。只是玩弄一些代码。

现在我有两个表,第一个是论坛类别,第二个是论坛板。

我现在的问题是,我可以使用 LEFT JOIN 或任何连接从类别表中获取其中一个,并从板上获取具有相同 catID 的所有结果吗?

这是我现在没有工作的代码:

$query = $_database->query("
SELECT boards.name AS boardName, boards.info, boards.category, boards.boardID, boards.sort, boards.topics, boards.posts,
categories.catID, categories.name AS catName, categories.sort
FROM ".PREFIX."forum_boards AS boards LEFT JOIN ".PREFIX."forum_categories AS categories ON boards.category = categories.catID GROUP BY categories.catID ORDER BY boards.boardID");
while ($rad = $query->fetch_array()) {
echo '<h2>'.$rad['catName'].'</h2>';
echo $rad['boardName'];
}

收到一个发布我的表格结构的请求,这里是

板:

CREATE TABLE IF NOT EXISTS `mm_forum_boards` (
`boardID` int(11) NOT NULL,
`category` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`info` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`sort` int(2) NOT NULL DEFAULT '0',
`topics` int(11) NOT NULL DEFAULT '0',
`posts` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

类别:

CREATE TABLE IF NOT EXISTS `mm_forum_categories` (
`catID` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`info` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`sort` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

一些数据:

INSERT INTO mm_forum_categories (`name`, `info`, `sort`) VALUES('Test Cat 1', 'Just giving some lorem data ^^', '1');
INSERT INTO mm_forum_categories (`name`, `info`, `sort`) VALUES('Test Cat 2', 'Just giving some lorem data ^^', '2');
INSERT INTO mm_forum_boards (`category`, `name`, `info`, sort`) VALUES('3', 'Test board 1', 'Lorem board for now', '1');
INSERT INTO mm_forum_boards (`category`, `name`, `info`, sort`) VALUES('3', 'Test board 2', 'Lorem board for now', '2');
INSERT INTO mm_forum_boards (`category`, `name`, `info`, sort`) VALUES('3', 'Test board 3', 'Lorem board for now', '3');

INSERT INTO mm_forum_boards (`category`, `name`, `info`, sort`) VALUES('4', 'Test board 4', 'Lorem board for now', '1')

最佳答案

这里 SQL 中的 GROUP BY 子句是错误的。它聚合具有相同category_id 的所有行。当您想要计算它们时,这很有用,但在这里不行。

当您想按类别排序时,请将其放在ORDER BY子句中

关于php - 如何从具有相同 catID 的表中获取一个结果并从另一个表中获取多个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059586/

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