2016-09-01 6 views
-1

私は2つのSELECTステートメントを持っています。両方とも私に同じ量の行を与え、値はお互いに関係しています。2つのselect文の結果を2つのカラムを持つ1つのテーブルにマージする方法はありますか?

SELECT testtime 
FROM testinspection 
WHERE sample_id = (
    SELECT id 
    FROM sample 
    WHERE name = '12_1') 

SELECT image 
FROM testedsampleimage 
WHERE id in (
    SELECT testedsampleimage_id 
    FROM testinspection 
    WHERE sample_id = (
     SELECT id 
     FROM sample 
     WHERE name = '12_1')) 

だから私の例では(例えば)このように、私は特定のテスト時間のためのテスト画像を持っていると私は1つのテーブルに両方の結果を持つようにしたい:

TESTTIME | IMAGE 
------------------- 
15  | <LONG> 
63  | <LONG> 
78  | <LONG> 
25  | <LONG> 
12  | <LONG> 

誰もがどのように知っていますこれをする?

答えて

1
SELECT t.testtime,i.image 
FROM sample s 
    join testinspection t on t.sample_id = s.id 
    join testedsampleimage i on t.testedsampleimage_id = i.id 
WHERE s.name = '12_1' 
0

idtestedsampleimage_idフィールドに基づいて、2つのテーブル間1-1関係があるようです。

SELECT testtime, image 
FROM testinspection 
JOIN testedsampleimage ON id = testedsampleimage_id 
WHERE sample_id = (
    SELECT id 
    FROM sample 
    WHERE name = '12_1') 
0

次の2つのSELECT文の結果を結合するためのunionを使用する必要があります。この場合、あなたは簡単なJOIN操作を使用することができます。あなたが重複する値を削除したい場合は

SELECT testtime 
FROM testinspection 
WHERE sample_id = (
    SELECT id 
    FROM sample 
    WHERE name = '12_1') 

UNION ALL  

SELECT image 
FROM testedsampleimage 
WHERE id in (
    SELECT testedsampleimage_id 
    FROM testinspection 
    WHERE sample_id = (
     SELECT id 
     FROM sample 
     WHERE name = '12_1')) 

のみUNION代わりUNION ALLのを使用しています。

関連する問題