为什么我的 SQL 查询返回多行?



我有两个表,我正在尝试检索对应于第一个表的max(id)(递增)和第二个表的用户ID的线程ID。 在sql语句中,我已经连接了表并尝试检索列,但是收到多行,我不确定为什么。 我放置了一个示例用户 ID 1,我预计只检索一行,其值应为 85。

用拼出的话来说,我想从表 1 中获取对应于表 2 user_id和表 1 的最大 id 的线程 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)

这现在应该返回一行。

相关内容

  • 没有找到相关文章

最新更新