2016-03-20 14 views
0

私のプラットフォームからの報告:Ubuntuの12.04 私は自分のデータベースを持っている:
- TABLE1:箱、トレー、...
- 表2:トレイ、ボルト、...2テーブル、クエリ - それぞれから選択して、両方

私は、このSQLクエリを試してみた:

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

は私にトレイやボルトのリストを与えます。

私はしたいと思います:ボックス、トレイ、ボルトを出力します。どうやって?

ありがとうございます。余分なクレジットのための良いチュートリアルへのポインタ? :-)

答えて

1

あなたは、内側が(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でサブクエリを使用します。

サブクエリ(相関クエリ)とソリューション:あなたはJOINを探している

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

私はこれを最初に理解していたので、これを正しいとマークしました(「使用する」の使用は1日目に困惑していました)。また、ほとんどの場合に役立つチュートリアルは@ https://www.techonthenet.com/sql/joins.php – gene

1

select t1.box, tray, t2.bolt 
from table1 t1 join 
    table2 t2 
    using (tray) 
where t1.box > 11; 
関連する問題