我有2个表,LEFT JOIN SQL但不同
A.Table销售
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
我只想得到2种风格之一换码
我有2个表,LEFT JOIN SQL但不同
A.Table销售
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
我只想得到2种风格之一换码
补充了戈登·利诺夫
最后的答案,我只是改变 “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命令。
谢谢,查询是正确的 – Henry
有在不同的数据库不同的方式,但在这里是一个:
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标准的代码。它不选择任意风格;它选择最大值(按字母顺序)。
A LEFT JOIN
不需要,因为代码在两个表中匹配。
无子查询:
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
“LEFT JOIN SQL,但不同”您的标题本身可以解决它 – Treycos