我有两个表,我正在尝试检索对应于第一个表的max(id)(它是递增的)和第二个表的用户标识的线程ID。在sql语句中,我已经加入了这些表格,并试图检索该列,但正在接收多行,而我不知道为什么。我把一个示例用户ID为1,我期待检索只有一行,应该有一个值为85.为什么我的SQL查询返回多行?
在拼写单词中,我想要从表1中的线程ID对应于表2的user_id和表1的最大id。
我有下面的小提琴。
http://sqlfiddle.com/#!9/8a7d5d/56
我有两个表,我正在尝试检索对应于第一个表的max(id)(它是递增的)和第二个表的用户标识的线程ID。在sql语句中,我已经加入了这些表格,并试图检索该列,但正在接收多行,而我不知道为什么。我把一个示例用户ID为1,我期待检索只有一行,应该有一个值为85.为什么我的SQL查询返回多行?
在拼写单词中,我想要从表1中的线程ID对应于表2的user_id和表1的最大id。
我有下面的小提琴。
http://sqlfiddle.com/#!9/8a7d5d/56
试试这个:
SELECT
$table_messages.thread_id
FROM
$table_messages
RIGHT JOIN
$table_recipients ON $table_messages.thread_id = $table_recipients.thread_id
WHERE
user_id = 1
order by $table_messages.id DESC
Limit 0,1;
在你的最后一行有以下SELECT
声明:
(SELECT MAX($table_messages.id))
但是,你没有指定要得到这个值表。将此语句更改为:
(SELECT MAX($table_messages.id) FROM $table_messages)
现在应该返回一行。
感谢您的回答,但是这似乎不返回我一直在寻找的逻辑。有些东西打破了查询。 – LearntoExcel
非常感谢!我正准备将我的头撞在墙上 – LearntoExcel