![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 23.02.2009 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Posiadam w bazie trzy tabele: - newsletter_recipient ( PK recipient_id ) - adresaci newslettera - newsletter_campaign ( PK campaign_id ) - kampanie mailingowe - newsletter_campaign_recipient ( FK recipient_id i campaign_id ) - zarzadza relacją adresat-kampania ( w tej tabeli przydzielam konkretnych adresatów do kampani ) Chodzi o to że chciałbym pobrać adresatów, którzy nie są przydzieleni do danej kampani ( powiedzmy że ta kampania ma campaign_id=2 ) Pobranie użytkowników, którzy nie są przydzieleni do żadnej kampani nie sprawia mi problemów, ale ta relacja jest troszkę trudniejsza i przyznam szczerze że się na niej konkretnie wykrzaczyłem ![]() Wiem że na tym forum znajdują się osoby o wiele bardziej wyskilowane w sql'u niż ja, dlatego proszę Was o pomoc -------------------- Freelancer Symfony/PHP poszukuje ciekawych zleceń
Warsztat: Slackware-current, NetBeans 6.8, Symfony-1.4.x, jQuery, 960gs |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 42 Dołączył: 22.07.2007 Skąd: /dev/random Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 23.02.2009 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, ale... to chyba nie to o co mi chodzi.
Artega Twoje zapytanie złączy mi tabele z adresatami z tabelą w której trzymam relacje adresat-kampania, a potem pobierzez wiersze, które są rózne od 2, czyli pobierze adresatów, którzy nie należą do kampani nr 2 ( a więc wszystkich pozostałych ). Wydaje mi się że trzeba użyć dwóch left joinów ( możliwe że się mylę ), żeby złączyć te tabele ze sobą, a później pobrać wiersze dla których recipient_id w tabeli newsletter_campaign_recipient równe jest NULL. Podobnie jak ma się to w przypadku, pobierania użytkowników, którzy nie są przydzieleni do żadnej kampani:
Z tym, że te zapytanie łączy jedynie tabele newsletter_recipient z tabelą newsletter_campaign_recipient, a mi chodzi o połączenie jeszcze dodatkowo tabeli newsletter_campaign. Czy jest ktoś na forum kto może mi pomóc? Będę bardzo wdzięczny Nie jestem do końca pewny, ale chyba udało mi się ugryźć temat, dzięki artkułowi http://www.tonymarston.net/php-mysql/many-to-many.html wykombinowałem coś takiego:
Póki co na razie chodzi i zwraca prawidłowe wyniki. Ten post edytował damiankopiec 24.09.2009, 09:00:26 -------------------- Freelancer Symfony/PHP poszukuje ciekawych zleceń
Warsztat: Slackware-current, NetBeans 6.8, Symfony-1.4.x, jQuery, 960gs |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Na moje oko coś takiego powinno dać ten sam efekt, przetestuj bo jestem ciekawy
![]()
ps/ nie zapomnij o indexach /edit/ w sql na is null - swoja droga chyba nie do końca wiem co chcesz osiągnąć Ten post edytował plurr 24.09.2009, 09:15:33 -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 13:35 |