2017-04-11 112 views
1

我有两个表,我正在尝试检索对应于第一个表的max(id)(它是递增的)和第二个表的用户标识的线程ID。在sql语句中,我已经加入了这些表格,并试图检索该列,但正在接收多行,而我不知道为什么。我把一个示例用户ID为1,我期待检索只有一行,应该有一个值为85.为什么我的SQL查询返回多行?

在拼写单词中,我想要从表1中的线程ID对应于表2的user_id和表1的最大id。

我有下面的小提琴。

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

回答

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; 
+0

非常感谢!我正准备将我的头撞在墙上 – LearntoExcel

0

在你的最后一行有以下SELECT声明:

(SELECT MAX($table_messages.id)) 

但是,你没有指定要得到这个值表。将此语句更改为:

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

现在应该返回一行。

+0

感谢您的回答,但是这似乎不返回我一直在寻找的逻辑。有些东西打破了查询。 – LearntoExcel