PHP,PDO-连接三个表以生成新闻提要的正确方法
目前我有三个表,分别包含PHP,PDO-连接三个表以生成新闻提要的正确方法,php,mysql,pdo,smarty,Php,Mysql,Pdo,Smarty,目前我有三个表,分别包含用户,主题,和注释,注释表有两种不同类型的注释猫注释和狗注释。 我想实现一个新闻提要,在这里我将在主题或评论中显示每个新提交的内容。诀窍是,我使用smarty作为模板引擎,如果我想在新主题开始日期或提交评论之前排序,我只能执行一个foreach循环 我试图这样做,但它多次返回相同的行: $stmt = $db->prepare('SELECT title, username, cat_comments, dog_comments FROM topics, use
用户
,主题
,和注释
,注释表有两种不同类型的注释猫注释
和狗注释
。
我想实现一个新闻提要,在这里我将在主题或评论中显示每个新提交的内容。诀窍是,我使用smarty
作为模板引擎,如果我想在新主题开始日期或提交评论之前排序,我只能执行一个foreach
循环
我试图这样做,但它多次返回相同的行:
$stmt = $db->prepare('SELECT title, username, cat_comments, dog_comments
FROM topics,
users, topics, comments WHERE topics.user_id = users.id OR comments.user_id =
users.id ORDER BY
topics.date_started OR comments.date_posted DESC');
我的表格结构:
users:
- id
- username
topics:
-topic_id
-title
-user_id (the user that started this topic)
-date_started
comments:
-id
-user_id (user that posted the comment)
-cat_comments
-dog_comments
-date_posted
所以我想以这样的方式加入它,我可以展示每一条新闻:
Username has started topic (title of topic)
date_started
如果此时有人留言,我想显示:
Username left a cat_comment on topic (title of topic)
date_posted
或
我真的很乐意接受任何建议或帮助!提前谢谢大家 可能是您需要一个带有连接的独特
SELECT distinct t.title, u.username, c.cat_comments, c.dog_comments
FROM user u
left join topics t on t.user_id = u.id
left join comments c on c.user_id = u.id
ORDER BY t.date_started DESC, c.date_posted DESC
查找连接语法没有按a或b排序的
语法当你是新手时,连接语法很难学习,目前我正在阅读一本有很多关于它的课程的书,但我几乎不理解其中的一半,我想要一些带示例的初学者教程等等,但是找不到类似的东西这给了我与我的查询相同的结果(多次重复行):(看起来很奇怪…然后更新你的问题…添加适当的数据样本和预期结果..请
SELECT distinct t.title, u.username, c.cat_comments, c.dog_comments
FROM user u
left join topics t on t.user_id = u.id
left join comments c on c.user_id = u.id
ORDER BY t.date_started DESC, c.date_posted DESC