少し複雑なクエリがあります。
私はテーブル親行を持つ子と子を持たない親行を選択する方法
tbl_Categories {CategoryID, Name, CategoryId_fk}
を持っており、それは、自己参照テーブルをそれ。 CategoryId_fk
がNULL
の場合、子の値がある場合、その行は親です。 私はすべての子供(それはCategoryId_fk
がnull
ではない)と行をCategoryId_fk
がnull
であり、子を持たない行を選択する問題があります。 私が何かを試みたが、動作しません:あなたは、外部キーの両方b
とa
と一致した
SELECT a.*
FROM tbl_Categories a
WHERE NOT EXISTS (
SELECT 1 FROM tbl_Categories b
WHERE b.CategoryId_fk= a.CategoryId_fk
)
検索StackOverflow「再帰的CTE」は、このような問題を解決するための数多くの例を示しています。より具体的な例については、「階層」に入れてください。 –
うーん..私はそれが正しいとは思わなかったと思う。あなたがすべての子供とすべての親を望むなら、それはテーブル全体ではないでしょうか? サンプルデータを提供できますか? –
@BhrugeshPatel - 子どもがいる親なしのテーブル全体*。 –