私はたくさんのテーブルを持っていて、結果が重複したり重複したりすることなく、複数のジョインをすべてのテーブルに残しました。私のテーブルの1つは複数の値を持ち、重複した同じIDを受け入れることができます。私がすべてのテーブルを結合したままにすると、結果は正しく表示されますが、その特定の列は複数値テーブルの値の1つを示します。複数の左ジョインと複数の値を持つWHERE句
現在、私はマルチ値テーブルのフィルタリングを行っていますが、マルチ値テーブルの値のうちの1つだけを出力するため、結果は不確実です。
メニュー表
id cuisine_id
1 1
CuisineMenu表(マルチ値/重複メニューのidを受け入れる)
cuisine_id menu_id
1 1
2 2 (Ignore)
3 1
クエリ
SELECT * FROM menu
LEFT JOIN (
SELECT *
FROM cuisinemenu
GROUP BY menu_id
) cuisinemenu ON cuisinemenu.menu_id = menu.id
WHERE (cuisine_id = '3')
句
Empty
は結果(WITH句)期待はどこでWhere句
id cuisine_id
1 1
ずに出力
id cuisine_id
1 3
この質問はmysqlまたはSql Serverに関連していますか? SQL Serverの場合は、WHERE(cuisinemenu.cuisine_id = '3')でなければなりません。 – Coder1991
空の結果セットは実際には正しいです。結合条件 'menu.id = cuisine_menu.cuisine_id'とwhere句' where cuisine_menu.id = 3'は共存できません。要件を洗練してください。 –
@YusufHassan thatはcuisinemenu.menu_id = menu.idです。この質問がSQL Serverに関係しているかどうかは不明です。 – Coder1991