作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为我的网站构建一个管理页面,我可以在其中使用多个复选框来存储/更新单个帖子的许多类别。所以我创建了三个表:
POST Table (id (index, auto-increment, not null), subject, content)
CATEGORIES Table (id (index, auto-increment, not null), name)
POST_CATEGORIES Table (id (index, auto-increment, not null), id_cat (foreign key to CATEGORIES.id), id_post (foreign key to POST.id))
(最后一个表正在建立帖子及其类别之间的关系。)
所以我尝试列出带有多个复选框的类别。我正在执行此查询,但它没有按预期工作:
$select = $db->query('SELECT categories.id, categories.name, post_categories.id_cat AS fk_cat, post_categories.id_post AS fk_post, post.id AS post_id
FROM `categories`
LEFT JOIN post_categories
ON categories.id = id_cat
LEFT JOIN posts
ON post.id = id_post');
结果是我有一个类别列表,但每个类别名称都会重复,具体取决于具有该类别的帖子数量(例如:如果帖子 1 和帖子 2 都有类别 1,则类别 1 将在我的列表中出现 2 次)。
编辑:感谢您的回复,这是一个 sqlfiddle 来看看发生了什么...... http://sqlfiddle.com/#!9/4c304/1
(我正在尝试显示类别列表。我不会从类别表中选择 *,因为在下一步中,我希望在编辑帖子时检查正确的类别。)
最佳答案
SELECT DISTINCT c.id
, c.name
, p.id post_id
FROM categories c
LEFT
JOIN post_categories pc
ON c.id = pc.id_cat
LEFT
JOIN posts p
ON p.id = pc.id_post
关于php - 如何在 PHP 和 MySQL 中建立一个多类别的管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31430982/
我是一名优秀的程序员,十分优秀!