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:
SELECT * FROM newsletter_recipient LEFT JOIN newsletter_campaign_recipient ON ( newsletter_recipient.recipient_id=newsletter_campaign_recipient.recipient_id )
WHERE newsletter_campaign_recipient.recipient_id IS NULL
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:
SELECT *
FROM newsletter_recipient
CROSS JOIN newsletter_campaign
LEFT JOIN newsletter_campaign_recipient ON (
newsletter_campaign_recipient.recipient_id = newsletter_recipient.recipient_id AND newsletter_campaign_recipient.campaign_id = newsletter_campaign.campaign_id)
WHERE newsletter_campaign_recipient.recipient_id IS NULL AND newsletter_campaign.campaign_id=2
Póki co na razie chodzi i zwraca prawidłowe wyniki.