![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam w bazie dwie tabele, m/in z polami jak poniżej: tabela users: id... user_id..........email tabela image id... user_id.......user_image Jak widać w obu jest pole user_id. Nie wszyscy użytkownicy, którzy mają email mają też user_image w tabeli image. Rekord do tabeli image jest dodawany przy dodawaniu obrazku i zawiera tylko pełne pola, tzn. nie ma np. user_image o wartości NULL. Za to user_id powtarza się w tej tabeli wielokrotnie, gdy użytkownik ma wiele obrazków. Pole user_image zawiera nazwę rodzaju obrazka (jest kilka) Chcę wysłać mailing tylko do tych użytkowników posiadających email w tabeli users (nie wszyscy mają), którzy mają określony typ obrazka w tabeli images w polu user_image. Jak napisać takie zapytanie w php? (tabele są bardziej rozbudowane, ale podaję tylko to co istotne) Z góry dziękuję za pomoc Chodzi tylko o zapytanie do bazy Ten post edytował maraska 9.04.2013, 19:25:38 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Oba zapytania zadziałają niemal identycznie, z tym że do wyszukiwania pustych/niepustych (NULL/NOT NULL) wartości nie powinno się używać operatorów arytmetycznych. Zostało to dokładnie opisane w dokumentacji.
Pierwsze zapytanie to również zapytanie ze złączeniem, ale w tym przypadku INNER JOIN. Nas natomiast interesują wszystkie rekordy z tabeli users i odpowiadające im rekordy z tabeli image, stąd LEFT JOIN. Mała podpowiedź do drugiego pytania: `u`.* - wszystkie kolumny z tabeli users `i`.* - wszystkie kolumny z tabeli image `u`.*, `i`.* - wszystkie kolumny z tabel users i image @zbychoCom: Za JOIN-em również znajduje się nazwa tabeli (i ewentualnie jej alias). Ten post edytował mortus 9.04.2013, 20:50:55 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 07:14 |