我的平台:Ubuntu 12.04
我的数据库中有:
-table1:盒子,托盘,...
-table2:托盘,螺栓,...

我试过这个SQL查询:

select `tray`,bolt from table2 where `tray` in ( select `tray` from table1 where `box` > 11 );


给我一个托盘和螺栓的清单。

我想要:输出框,托盘和螺栓。怎么样?

提前致谢。一个额外的功劳的好教程的指针? :-)

最佳答案

您应该使用内部联接而不是IN():

SELECT t.tray,t.bolt,s.box
FROM table2 t
INNER JOIN table1 s
 ON(t.tray = s.tray and s.box > 11)


正如@Reto所述,you can read about joins here!

通常,要从1个以上的表中获取数据,您必须使用JOIN或在select中使用子查询。

一个带有子查询(相关查询)的解决方案:

SELECT t.box,t.tray,
       (select s.bolt from table2 s where s.tray = t.tray) as bolt
FROM table1 t
WHERE t.box > 11)

10-07 13:53