3

次のクエリをT-SQLから変換したい

SELECT
    * 
FROM
    A                            LEFT JOIN
    B ON A.field1 = B.field1     LEFT JOIN
    C ON C.field1 = A.field2 AND
         C.field2 = B.field2

JetSQLに。
現在、MSAccessはあいまいなクエリを受け入れません。どうやってやるの?WHERE2番目の比較を句に入れることはできません。なんで?私のシナリオでは、Cに存在しないレコードを選択しているためです。

別のテーブルに存在しない1つのテーブルからすべてのレコードを選択するにはどうすればよいですか?

さて、MS Accessではどうですか?時間と専門知識を事前に感謝します。

4

2 に答える 2

3

これをMSAccessで機能させるには、派生テーブルが必要です。

SELECT * 
FROM (
   SELECT A.Field1, A.Field2 As A2, B.Field2 
   FROM A 
   LEFT JOIN B ON A.field1 = B.field1) AS x 
LEFT JOIN C ON  x.A2 = C.field1 AND  x.field2= C.field2 
于 2012-07-31T08:08:26.870 に答える
0

ヘルプLEFTJOIN、RIGHTJOIN操作から

複数のON句をリンクできます。これがどのように行われるかを確認するには、INNERJOINトピックの句リンクの説明を参照してください。

次の構文を使用して、JOINステートメントで複数のON句をリンクすることもできます。

SELECT fields 
FROM table1 
     INNER JOIN table2 ON table1.field1 compopr table2.field1 
                          AND ON table1.field2 compopr table2.field2)
                          OR ON table1.field3 compopr table2.field3)];

しかし、これは機能します(ヘルプにエラーがあるようです):

SELECT * 
FROM A 
     LEFT JOIN B ON A.field1 = B.field1
     LEFT JOIN C ON (C.field1 = A.field2 AND C.field2 = B.field2)
于 2012-07-31T08:10:28.653 に答える