从多个表中选择多个列?

时间:2013-05-15 12:59:15

标签: sql

我在sql中有3个表

PTABLE

Prdnum
1
2
3
4
5
6
7

Qtable

prdnum        Pid             Data

1              1             somedata
1              2             somedata
2              1             somedata
3              1             somedata
3              2             somedata
4              1             somedata

稳定

Prdnum                      brand
1                           somedata
2                           somedata
3                           somedata 
4                           somedata  

Prdnum是主键。在这里,我需要从Prdnum中选择PTable,从Prdnum选择品牌StableData中的QTable属于Prdnum ,另一个条件是Prdnum Pid=2中没有QTable

我尝试了一些像

这样的代码
SELECT Prdnum 
FROM PTable 
WHERE Prdnum NOT IN (SELECT Prdnum FROM QTable WHERE Pid=2) 

但如何从其他表中选择BrandData

2 个答案:

答案 0 :(得分:2)

select * 
from Qtable
inner join STable 
on Qtable.prdnum = STable.prdnum
where (Qtable.prdnum <> 2);

我忽略了PTable,您可以包含它,以防此表中的产品在其他2个表中不可用(使用外部联接)

答案 1 :(得分:2)

SELECT p.Prdnum, s.Brand, q.Data
FROM PTable p
JOIN STable s on p.Prdnum = s.Prdnum
JOIN QTable q on p.Prdnum = q.Prdnum
WHERE q.Pid != 2