我有两张桌子,比方说table1
和table2
。
table1 || table2
--------||-------------
col1 || col1 | col2
--------||------|------
a || a | 4
b || a | 2
c || a | 5
d || b | 1
|| b | 3
|| d | 6
使用SELECT table1.col1, table2.col2 FROM table1 LEFT OUTER JOIN table2 ON table1.col1 = table2.col1
我得到以下信息:
table1.col1 | table2.col2
-------------|-------------
a | 4
a | 2
a | 5
b | 1
b | 3
c | NULL
d | 6
如何实现这一目标(只获得table2.col2
的最小值,以便table1.col1
不多次输入一次):
table1.col1 | table2.col2
-------------|-------------
a | 2
b | 1
c | NULL
d | 6
或者这是一种错误的做法?
答案 0 :(得分:3)
您需要使用MIN
:
SELECT
t1.col1,
MIN(t2.col2) AS col2
FROM table1 t1
LEFT JOIN table2 t2
ON t2.col1 = t1.col1
GROUP BY t1.col1
答案 1 :(得分:2)
替代解决方案,使用相关的子查询:
select col1, (select min(col2) from table2 t2 where t2.col1 = t1.col1)
from table1 t1
答案 2 :(得分:0)
如果Category
中有更多列,您可能希望使用table2
运算符:
APPLY