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

时间:2017-04-11 01:31:22

标签: mysql join compare

我有两个表,我正在尝试检索与第一个表的max(id)(递增)和第二个表的用户id相对应的thread-id。在sql语句中,我已经加入了表并尝试检索列,但是我收到了多行,我不知道为什么。我将示例用户ID设置为1,我希望只检索一行,其值应为85.

在拼写单词中,我想从表1中获取与表2的user_id和表1的最大id相对应的thread-id。

我有下面的小提琴。

http://sqlfiddle.com/#!9/8a7d5d/56

2 个答案:

答案 0 :(得分:1)

尝试一下:

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;

答案 1 :(得分:0)

在最后一行中,您有以下SELECT声明:

    (SELECT MAX($table_messages.id))

但是,您尚未指定从哪个表中获取此值。将此声明更改为:

    (SELECT MAX($table_messages.id) FROM $table_messages)

现在应该返回一行。