ホーム>source

次のようなクエリで異なるテーブルからデータを選択する必要がある状況があります。各ステップを行ごとに使用します。 tab1やtab2のようなテーブルにはリレーションがありますが、誰かが1つのSQL SELECT句でこれらの値をクエリする方法の例を与えることができますか?ありがとう!

-- First query to get field value to next select<br>
SELECT tab1.*, tab2.*  FROM tab1, tab2 WHERE field1 = 'Key1'; <br>
SELECT * from tab2 WHERE field2 = 'Key2'; -- returned from row 1 e.g. tab1.field<br>
select * FROM tab3 where field3 = 'Key3'; -- returned from row 2 e.g. tab2.field<br>
SELECT * FROM tab4 WHERE field4 in ('Key4','Key5','Key7'); <br>
-- returned from row 3 e.g tab3 with three fields<br>

あなたの答え
  • 解決した方法 # 1

    1つのテーブルビューとして結果を取得するには、次のように使用してみてください。 または、関連する列でinnerjoinを使用する必要があります

    SELECT *
      FROM tab1 
      WHERE tab1=key1
     UNION  
     SELECT * 
      FROM tab2 
      WHERE tab2=key2
     UNION  
     SELECT * 
      FROM tab3 
      WHERE tab3=key3
     UNION  
     SELECT * 
      FROM tab4 
         WHERE tab4 in ('Key4','Key5','Key7');
    
    

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ typescript - ReactJs:Map をmap()する方法