これは、クエリを、古典的なEXISTSされています。しかし、私はこのクエリは、ほぼすべてのデータベースエンジンをで働くだろうが、私ので、それは、ANSI SQLで許可されていないことEXISTSがANSI SQLにあります。スーパークエリ内のテーブル名
SELECT S.SupplierName AS Supplier
FROM Suppliers S
WHERE EXISTS (SELECT P.ProductName FROM Products P WHERE P.SupplierId = S.supplierId AND P.Price < 20);
言われてきましたメインクエリで明示的に指定されていないテーブルをサブクエリに命名しました。
SELECT S.SupplierName AS Supplier
FROM Suppliers S, Products P --Yes, join is pending here
WHERE EXISTS (SELECT P2.ProductName FROM Products P2 WHERE P2.SupplierId = S.supplierId AND P2.Price < 20);
しかし、それはどちらか私には意味がありませんが、私はのテーブルに名前を付ける必要がないことを証明するために公式のANSI SQLの例で検索しました:このような
何かが正しいはずですメインクエリのサブクエリと私は何も見つかりませんでした。
最初のクエリがANSI SQLかどうかを誰かが教えてくれたら本当に感謝します。
クエリにエイリアスを追加します。 *読みやすいように少なくとも* – wildplasser