我有两张桌子,
A.Table Sales
Code | qty_sales Values
A | 10
B | 20
B中。表大师
Code | Style
A | AA10
A | AA12
B | BB10
我希望得到这样的结果:
Code | Style | qty
A | A10 | 10
B | BB10 | 20
我只想获得代码A
的2种风格之一答案 0 :(得分:0)
不同的数据库有不同的方法,但这里有一个:
select s.code, c.style, s.qty_sales
from sales s join
(select m.code, max(m.style) as style
from master m
group by m.code
) c
on s.code = c.code;
这是ANSI标准代码。它不选择任意风格;它选择最大值(按字母顺序)。
不需要LEFT JOIN
,因为代码在两个表中匹配。
答案 1 :(得分:0)
没有子查询:
select m.code, min(m.style) as style, min(s.qty_sales) as qty_sales
from master m join sales s on s.code=m.code
group by m.code
答案 2 :(得分:0)
补充 Gordon Linoff
的最后答案我只是改变了#34; m.style"到" c.style"。
select s.code, c.style , s.qty_sales
from sales s join
(select m.code, max(m.style) as style
from master m
group by m.code
) c
on s.code = c.code;
我同意你需要一个"规则"只获得一个主表的寄存器。 我上面的例子是Gordon Linoff使用MAX命令。