1. CREATE TABLE IF NOT EXISTS `user` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `status_id` int(10) DEFAULT NULL,
  4. `user_group_id` int(10) DEFAULT NULL,
  5. `first_name` varchar(128) DEFAULT NULL,
  6. `last_name` varchar(128) DEFAULT NULL,
  7. `email` varchar(128) DEFAULT NULL,
  8. `password` varchar(40) DEFAULT NULL,
  9. `algorithm` varchar(128) DEFAULT NULL,
  10. `salt` varchar(128) DEFAULT NULL,
  11. `access2plan` int(10) DEFAULT NULL,
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=MEMORY;
  14.  
  15. CREATE TABLE IF NOT EXISTS `user_agency` (
  16. `user_id` int(10) NOT NULL,
  17. `agency_id` int(10) NOT NULL,
  18. PRIMARY KEY (`user_id`,`agency_id`)
  19. ) ENGINE=MEMORY;
  20.  
  21. CREATE TABLE IF NOT EXISTS `user_hidden_advertiser` (
  22. `user_id` int(10) NOT NULL,
  23. `advertiser_id` int(10) NOT NULL,
  24. PRIMARY KEY (`user_id`,`advertiser_id`)
  25. ) ENGINE=MEMORY;


W tabeli user_agency znajdują się relacje który użytkownik ma dostęp do danej agencji, a w user_hidden_advertiser mamy relację do reklamoawców do których mamy dostęp wykluczony.
Potrzebuje wyciągnąć unikalne @ na tej podstawie, a niestety po próbach zawsze mi czegoś brakuje, nie mam pomysłu już na to zapytanie.
Czy może mi ktoś w tym temacie pomóc?

  1. SELECT DISTINCT
  2. `u`.`email` AS `email`
  3. FROM
  4. `user` `u`
  5. JOIN
  6. `user_agency` `a` ON ((`a`.`user_id` = `u`.`id`))
  7. LEFT JOIN
  8. `user_hidden_advertiser` `h` ON (`h`.`user_id` = `u`.`id`)
  9. WHERE
  10. `a`.`agency_id` = {$agency_id}
  11. AND ISNULL(`h`.`advertiser_id`)


Nikt nie ma pomysłu?