ich die folgenden Tabellen in meiner Datenbank haben:MySql-Abfrage beitreten Tabellen
Gerichte
id
name
Benutzer
id
email
Zutaten
dishes_ingredients (dies wird verwendet, um die Beziehung zwischen Geschirr und Zutaten zu repräsentieren)
id
dish_id
ingredient_id
users_allergic_ingredients (Benutzer bestimmte Inhaltsstoffe allergisch sind)
id
user_id
ingredient_id
ein bestimmter Benutzer gegeben (user_id), ich muss alle Gerichte bekommen, auf die der Benutzer NICHT allergisch ist.
Ich habe versucht, mit dieser Abfrage:
SELECT *
FROM dishes
JOIN dishes_ingredients
ON dishes.id = dishes_ingredients.dish_id
WHERE dishes_ingredients.ingredient_id NOT IN
(SELECT uai.ingredient_id FROM users_allergic_ingredients uai WHERE uai.user_id = 1)
Aber ich bekomme alle Gerichte und nicht nur die Gerichte, auf die der Kunde nicht allergisch ist.
Was mache ich falsch?
ausgelassen wurden Was passiert, wenn ich die Abfrage ändern möchten, und von Gerichten statt dishes_ingredients starten? – Giorgio