假設我有一個像這樣的查詢:如何將LEFT JOIN限制爲一個結果並返回結果集中的最低值?
SELECT t1.name, t2.likes
FROM table_1 t1
LEFT JOIN table_2 t2 ON t1.name = t2.name
怎麼可能LEFT JOIN進行修改,以使其做到以下幾點:
SELECT likes FROM table_2 WHERE name = [name from table 1] ORDER BY likes ASC
我試着寫一個子查詢,但沒有奏效因爲(我認爲)你不能在子查詢中使用子查詢之外的變量(例如名稱)(名稱不是常量,因爲查詢的結果集不止一個)。
這可能嗎?
編輯:表將是這樣的:
TABLE_1:
+------+--------+
| id | name |
+------+--------+
| 0 | cat |
| 1 | dog |
+------+--------+
表2:
+------+--------+---------+
| id | name | likes |
+------+--------+---------+
| 0 | cat | 23 |
| 1 | cat | 2 |
| 2 | cat | 53 |
| 3 | dog | 25 |
| 4 | dog | 12 |
+------+--------+---------+
那麼,我希望是:
+--------+---------+
| name | likes |
+--------+---------+
| cat | 2 |
| dog | 12 |
+--------+---------+
你想要最小v每個'name'的'likes'列都有嗎?請澄清:你想回答什麼樣的問題? – 2012-07-29 00:10:35
@ZaneBien - 我用示例表更新了我的問題。是的,我想要每個名字的最小喜歡。 – Nate 2012-07-29 00:26:30
好的,我的第一個解決方案應該是您嘗試實現的最簡單的解決方案。如果你所需要的只是'name'和最少的'likes',你就不需要連接。 – 2012-07-29 00:28:12