更新: これは解決されました。構文エラーが発生していました。
左結合で 2 つの列を結合してフィルター処理できますか? 例えば:
tbl_people
id food side value
a pizza fries 10
b pizza shake 2
c burger fries 3
tbl_sides
food side
pizza fries
burger fries
次に SQL を使用します。
SELECT
id, food, side, value
FROM
tbl_people AS people
LEFT JOIN
tbl_sides AS sides ON sides.food = people.food
AND sides.side = people.side
食べ物のペアが結合されているかどうか、または NULL かどうかを判断できるように、フラグを追加できますか? 1 人あたりの食品/サイドの合計数と、1 人あたりの一致する食品/サイド ペアを数える必要があるため、内部参加はしたくありません。私は試した:
SELECT
id, food, side, value,
CASE WHEN
side.side IS NOT NULL
AND side.food IS NOT NULL
THEN 1
ELSE 0
END AS match_flag
FROM
tbl_people AS people
LEFT JOIN
tbl_sides AS sides ON sides.food = people.food
AND sides.side = people.side
しかし、それは機能していません。基本的に、結合が適用されていないときにフラグを立てる必要があるだけですが、問題があります。