Ich habe zwei durch einen Fremdschlüssel verbundene Tabellen:MySQL: Rückkehr nur Zeilen in einer Tabelle, wo sind alle Werte in einer Spalte einer anderen Tabelle die gleiche
main secondary
---- --------------------
id main_id(FK) | flag
---- --------------------
1 1 1
2 1 1
3 1 1
4 2 0
2 1
3 0
3 1
4 1
4 1
Ich brauche eine Abfrage zu erstellen, die nur für Rückkehr Zeilen von 'main', wenn ihre entsprechenden Zeilen in 'sekundären' ALL ein Flag = 1 haben. In diesem Beispiel sollte die Abfrage nur die Zeilen 1 und 4 von 'main' zurückgeben.
main
----
id
----
1
4
Ich habe mit COUNTs und NOT EXISTs gespielt, aber ich vermisse hier etwas Grundlegendes. Die grundlegende, abgespeckte Abfrage Ich begann mit ist:
SELECT main.id from main WHERE main.id IN (SELECT secondary.main_id from secondary WHERE flag = 1);
Welche anderen Bedingungen muss ich einstellen, um meine gewünschte Ergebnis eingestellt werden?
Versuch mit verschieden zu überprüfen – Abhis
Kann die Flagge nur 1 oder 0 sein - oder sind irgendwelche Werte erlaubt? –
@ P.Salmon: Die Flagge kann immer nur 1 oder 0 sein, ja. – Chris