假设我有一个像这样的查询:如何将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