我有兩個表,我正在嘗試檢索對應於第一個表的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