0

これは私が作っているよりも簡単に違いありませんが、ここで夢中になります。私がやりたいのは、次のような 3 つのテーブルからビューを作成することです。

SELECT tableA.name, tableB.id, tableB.categoryID, tableC.categoryParentID
FROM tableB, tableA where tableA.id=tableB.id JOIN tableC on
tableC.categoryID = tableB.categoryID;

十分に単純です。ただし、達成したいのは、tableB.categoryID が NULL の場合、tableC.categoryParentID を categoryParentID 値ではなく NULL 値として表示することです。

これまでの結果では、tableB.categoryID が NULL でないすべての行を表示するテーブルを取得し、categoryID の値が null である行を完全に除外することができます。 tableB のすべての行に対して tableC の categoryParentID のすべての行を含む奇妙なバリエーション - これは 3,000,000 行以上を提供し、これも正しくありません。

これが不明な場合は、さらに説明できます。

前もって感謝します。

4

1 に答える 1

1

私があなたを正しく理解しているなら、あなたが望むのは:

SELECT tableA.name,
       tableB.id,
       tableB.categoryID,
       tableC.categoryParentID
  FROM tableA
  JOIN tableB
    ON tableB.id = tableA.id
  LEFT
 OUTER
  JOIN tableC
    ON tableC.categoryID = tableB.categoryID
;

( SQL 結合に関するウィキペディアの記事の「左外部結合」セクションを参照してください。)

于 2012-09-04T00:02:27.167 に答える