【发布时间】:2011-03-16 15:29:37
【问题描述】:
我有以下表格:
作者:
id 用户名 电子邮件 密码 salt email_salt email_verified ip_address
作者线程:
thread_id, author_id
线程:
id、标题、内容、创建
标签:
身份证,姓名
线程标签:
tad_id,thread_id
我想选择最新的 30 个主题、它们的作者和它们的所有标签。这是我使用的 SQL 语句:
SELECT thread.title, thread.id as thread_id,
thread.content, author.username, author.id as author_id,
GROUP_CONCAT(DISTINCT tag.name ORDER BY tag.name DESC SEPARATOR ',') AS tags
FROM thread
JOIN thread_tags ON thread.id = thread_tags.thread_id
JOIN tag ON thread_tags.tag_id = tag.id
JOIN author_threads ON thread.id = author_threads.thread_id
JOIN author ON author_threads.author_id = author.id
GROUP BY thread.id DESC
LIMIT 0, 30
有没有更简单的方法?
【问题讨论】:
-
这是 MySQL 吗?您应该包括数据库类型标签。