我是 MySQL 编程新手,但有一个问题。我创建了这个查询:
SELECT *,
topics.createdate AS TopicCreateDate,
(SELECT (SELECT username
FROM users
WHERE id = topicanswers.userid)
FROM topicanswers
WHERE topicid = topics.id
ORDER BY id DESC
LIMIT 1) AS LastPost
FROM topics
INNER JOIN categories
ON topics.categoryid = categories.id
INNER JOIN users
ON topics.userid = users.id
ORDER BY topics.lastupdate DESC
Run Code Online (Sandbox Code Playgroud)
此查询列出所有Topics
、联接类别和用户,UserID
以及类别 IDTopics
和Username
来自TopicAnswers
as LastPost
。它命令它们LastUpdate
在Topics
由 控制的范围内下降TRIGER
。
它工作得很好,但是这个子查询有一个问题:
(SELECT (SELECT username
FROM users
WHERE id …
Run Code Online (Sandbox Code Playgroud) 当连接表中的记录不存在时,我如何连接两个表。我尝试过这样的事情:
SELECT
Confessions.ID, Confessions.WriteTitle, Confessions.WriteArea,
Confessions.POST_DATE, Votes.Type
FROM Confessions LEFT OUTER JOIN Votes ON Confessions.ID = Votes.PostID
WHERE ForUser = :ForUser AND Status = :Status AND Votes.IP_Check = :IP_Check
Run Code Online (Sandbox Code Playgroud)
但是当来自带有 PostID 的投票记录(如 Confessions 中的 ID)不存在时,MySQL 会返回此记录的空结果。有没有其他办法?