我有一个难以解释的问题,但我会尝试。首先,我想说出我想要做的事情。我有两个表,“作者”有作者ID,作者尼克和作者类型。 “条目”具有条目ID,条目主题,条目内容和条目的作者。 (有两种类型的作者:-normal和-banned)
首先,我使用此查询列出主题:
"SELECT distinct topic FROM entries ORDER BY id DESC LIMIT $l1, $lim";
但我有一个问题。我希望查询列出由普通作者的最后一个条目ID排序的主题,这意味着忽略所有被禁作者的条目。
我尝试了几种不同的代码,但我能管理的是列出最后一位作者未被禁止的主题。所以它导致忽略被禁止作者输入的主题,即使它内部有正常作者。
我希望您帮助我编写能够管理此示例的查询:
主题列表:a b c d
如果普通作者输入主题'c',则列表应为
c a b d
禁止作者进入主题'b',列表应为
c a b d
不是
c a d
我知道我无法解释我的整个期望,但我想要的只是编写一个查询,使用这两个表,从作者表中获取作者类型,作者姓名=条目的作者,并列出主题(不同)排序方式非禁止作者的条目。谢谢。
答案 0 :(得分:0)
您需要以下内容:
SELECT *
FROM topic inner join entries on topic.topicID = entries.topicID
WHERE entries.entryID in
(Select Max(entryID)
From entries inner join authors on entries.authorID = authors.authorID
Where author.authorType = 'normal'
Group By topicID)
ORDER BY entries.entryID desc
答案 1 :(得分:0)
SELECT
e.topic
FROM entries e
LEFT JOIN authors a ON a.id = e.author
GROUP BY
e.topic
ORDER BY
COALESCE(MIN(a.type), '') = 'banned',
e.topic