SQLで複数のselect文を組み合わせて

user9112767:

私はSQLを学び始めました。ここに私のデータベースの一部です:

ここでは、画像の説明を入力します。

私は条件付きプロジェクトテーブルからプロジェクト名を取得したいです:

name = 'turbine'そして、value = '03'Parameterテーブル。

私は、次のクエリを書いているし、それが動作しているようです!どの賢くクエリが私のために仕事をすることができればしかし、私は思っていました。

SELECT name
FROM Project
WHERE id IN (
    SELECT projectId
    FROM Cases
    WHERE id IN (
        SELECT caseId
        FROM ParamValue
        WHERE parameterId IN (SELECT id FROM Parameter WHERE name = 'turbine')
          AND value = '03')
    )
;
scaisEdge:

代わりにサブクエリを持ついくつかのネストされたIN句の内部結合の適切なセットを読み取るために、より簡単に思えます

select distinct Project.name 
from Project 
INNER JOIN  Cases ON Cases.projectId = Project.id
INNER JOIN ParamValue ON ParamValue.caseId = Cases.id
  AND ParamValue.value ='03'
INNER JOIN Parameter ON ParamValue.parameterId = Parameter.id 
  AND Parameter.name =  'turbine' 

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=5781&siteId=1