2016-03-20 81 views
0

我的平臺報告:Ubuntu的12.04 我在我的數據庫:
- 表1:箱,托盤,...
- 表2:托盤,錨杆,...2表查詢 - 從每個選擇並從兩個

我已經試過這SQL查詢:

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

給我盤和螺栓的列表。

我想要:盒子,托盤和螺栓作爲輸出。怎麼樣?

在此先感謝。一個指向額外功勞的好教程的指針? :-)

回答

1

您應該使用內加入的,而不是():

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中使用子查詢。

與子查詢(相關查詢)A液:

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) 
+1

和關於不同的方法來連接兩個表/實體教程:HTTP ://www.sitepoint.com/understanding-sql-joins-mysql-database/ – Reto

+0

我把這個標記爲正確的,因爲我明白了第一個(在第一個時候使用「using」是令人困惑的。)另外,最有幫助的教程是@ https://www.techonthenet.com/sql/joins.php – gene

1

你正在尋找一個JOIN

select t1.box, tray, t2.bolt 
from table1 t1 join 
    table2 t2 
    using (tray) 
where t1.box > 11;