Oto mój problem:
Tabela A id_a | imię --------------------- 1 | Nazwij 2 | imię-B 3 | imię-C 4 | o nazwie 5 | imię-E 6 | spcial_type
Tabela B id_b | id_a | warunek |podtyp ------------------------------------------------- 1 | 2 | 1 | 1 2 | 1 | 0 | 1 3 | 1 | 1 | 2 4 | 2 | 0 | 1 5 | 4 | 0 | 1 6 | 5 | 1 | 1 7 | 2 | 1 | 3
Warunki:
Tabela A: wykluczono "special_type"
Tabela A: wiersze nie uwzględnione w tabeli B
Tabela B: wszystkie z warunkiem = 0 wyłączone
Tabela wyników: id_r | id_a | id_b | imię | stan ----------------------------------------------- 1 | 1 | 3 | imię-A | 1 2 | 2 | 1 | imię-B | 1 3 | 5 | 6 | imię-E | 1 4 | 2 | 7 | imię-B | 1 5 | 3 | null | imię-C | zero
tabela A.subtype to tylko aux. aby pokazać, że id_a może być przechowywany wiele razy z warunkiem = 1
Co próbowałem:
wybierz x.id_a, x.name, z.id_b, z.id_a, z.condition z tabeli A LEFT JOIN Tabela z ON x. id_a = z. id_a
ale to przyniosło mi itemy z condition = 0, których nie chcę
więc próbowałem:
wybierz x.id_a, x.name, z.id_b, z.id_a, z.condition z tabeli A LEFT JOIN Tabela z ON x. id_a = z. id_a gdzie z.condition = 1
ale ten pomysł wykluczał elementy z Tabeli A, których nie ma w Tabeli B, i chcę te elementy.
Czy to może być wewnątrz MySQL, czy też potrzebuję skryptowego języka. to rozwiązać?
Ktoś myśli?
Odpowiedzi:
4 dla odpowiedzi № 1ok
Musiałem mieć tymczasową. zaciemniać.
Oto ona:
wybierz x.id_a, x.name, z.id_b, z.id_a, z.condition z tabeli A LEFT JOIN Tabela z ON x. id_a = z. id_a AND z.condition = 1
warunek poniżej
AND z.condition = 1
był kluczem, gdy został umieszczony w warunku łączenia, a nie w klauzuli where