2017-04-11 109 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