-1

Table1、Table2、Table3 の 3 つのテーブルがあります。

Table1 の結果を Table2 の制約として使用し、Table2 の結果を Table3 の制約として使用するクエリを作成したい

だから私のクエリは次のようなものです:

SELECT tb3.id 
FROM tb3 
WHERE tb3.tag = (
                   SELECT tb2.num 
                   FROM tb2 
                   WHERE tb2.name = (
                                      SELECT tb1.user 
                                      FROM tb1 
                                      WHERE check = '0'
                                    )
                 )

例えば、

tb1 には項目 'tb1.check'、'tb1.user' があります。

tb2 には項目 'tb2.num'、'tb2.name' があります。

tb3 にはアイテム「tb3.tag」、「tb3.id」があります。

最初に tb1 で 'tb1.check'= 0 のデータをチェックし、次にその 'tb1.user' を取得します。

次に、「tb2.name」=「tb1.user」であるデータについて tb2 をチェックし、「tb2.num」を取得します。

したがって、tb3 で 'tb3.tag' = 'tb2.num' のデータをチェックし、'tb3.id' を取得します。

しかし、私が得るのは空だけです。

4

3 に答える 3

3

INNER JOINサブクエリの代わりに次のように使用します。

SELECT tb3.id 
FROM tb3 
     INNER JOIN tb2  
         ON tb3.tag = tb2.num
     INNER JOIN Invitation inv
         ON tb2.name = inv.user AND
            inv.check = 0;
于 2012-08-10T09:30:02.070 に答える
2

実際には、それを使用してそれを行うことができますJOIN

SELECT tb3.id 
FROM   tb3 
        INNER JOIN tb2  
            ON tb3.tag = tb2.num
        INNER JOIN Invitation inv
            ON tb2.name = inv.user
WHERE   inv.check = 0
于 2012-08-10T09:32:34.670 に答える
1

これを試して...

SELECT tb3.id 
FROM tb3,tab2,tab1 
WHERE tb3.tag = tb2.num and 
tb2.name = tb1.user and 
tb1.check = '0'
于 2012-08-10T09:35:54.397 に答える