我有2张桌子。
TableA
ID | ColA | ColB
1 | asd | x
2 | qwe | z
3 | poi | w
TableB
ID | ColC | ColD | ColE
1 | rty | z | 123
2 | fgh | x | 276
3 | rtyy | z | 657
我正在使用这个SQL
SELECT bb.colc, aa.cola FROM tableA aa, tableb bb
WHERE aa.colb = bb.cold
获得此结果
Result
ID | ColA | ColC
1 | asd | fgh
2 | qwe | rty
3 | qwe | rtyy
我知道这是正确的,但我怎么能不复制'qwe'行?
对我来说,TableB中使用的行无关紧要。
答案 0 :(得分:0)
试试这个:
select tb1.colc, ta1.cola from (
select max(id) id, max(colc) as colc, cold from tb
group by cold
) tb1
join ta ta1 on ta1.colb = tb1.cold
请告诉我这是否符合您的预期。
答案 1 :(得分:0)
根据您的评论,您看起来只是想要:
SELECT aa.id, aa.cola
FROM tableA aa
WHERE aa.colB in (Select bb.cold from tableb bb);
这可能不是最有效的方法,但这是你要找的结果集吗?
答案 2 :(得分:0)
此查询将使用max
函数为您选择一个COLC条目:
SELECT aa.id,
aa.cola,
Max(bb.colc),
FROM tableA aa,
tableb bb
WHERE aa.colb = bb.cold
GROUP BY aa.id,
aa.cola;