从另一个表中加入不同的列值

时间:2014-03-21 04:53:08

标签: sql oracle

select t1.key,t2.design,t1.price,t1.gender,t1.store
from table1 t1,table2 t2
where t1.key=t2.key;

这是我的查询。在此查询中,列KEY是不同的。我需要具有不同DESIGN值的结果。帮助我。

2 个答案:

答案 0 :(得分:0)

from table1 t1 join table2 t2 on t1.key = t2.key
where design like "specific design"

答案 1 :(得分:0)

您的要求不准确。有两件事可能:

1)您正在谈论重复记录,即对于具有相同设计的两个记录,保证列密钥,价格,性别和商店相等。解决问题的两种方法:

select DISTINCT t1.key,t2.design,t1.price,t1.gender,t1.store
from table1 t1,table2 t2
where t1.key=t2.key;

select t1.key,t2.design,t1.price,t1.gender,t1.store
from table1 t1, (select distinct key, design from table2) t2
where t1.key=t2.key;

2)您所说的是重复设计和相关的相关信息,即对于相同设计的两个记录,您可能会得到不同的价格等。然后您必须考虑每个设计要获得哪些信息。最高价?价格总和? ...

select t1.key,t2.design,sum(t1.price),max(t1.gender),max(t1.store)
from table1 t1,table2 t2
where t1.key=t2.key
group by t1.key,t2.design;

这为您提供了每个键和设计的记录。如果您只想要每个设计的记录,那么您只能按设计进行分组,并决定要用它显示哪个键。

最后一条建议:使用显式连接语法。它更容易阅读,更不容易出错。

select t1.key, t2.design, t1.price, t1.gender, t1.store
from table1 t1
inner join table2 t2 on t1.key = t2.key;