I'm stuck again ... and perhaps it's just not designed right, but I inherited this setup, so if anyone has suggestions on how to make it better, I'm all ears. This is all one table ...
describe approvals; +-----------+--------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------------------+------+-----+---------+----------------+ | id | int(6) | NO | PRI | NULL | auto_increment | | photo_uid | int(7) unsigned zerofill | NO | | NULL | | | adminname | varchar(100) | NO | | NULL | | | status | int(1) | NO | | NULL | | +-----------+--------------------------+------+-----+---------+----------------+ SELECT * FROM approvals; +----+-----------+-----------+--------+ | id | photo_uid | adminname | status | +----+-----------+-----------+--------+ | 6 | 0000028 | admin1 | 1 | | 13 | 0000016 | admin1 | 0 | | 49 | 0000016 | admin2 | 1 | | 16 | 0000018 | admin1 | 1 | | 50 | 0000018 | admin2 | 0 | +----+-----------+-----------+--------+ The goal, here is to capture everything that does not have 'admin2' in the adminname column, however duplicated records in the photo_uid column should also be excluded. SELECT * FROM approvals WHERE adminname != 'admin2'; +----+-----------+-----------+--------+ | id | photo_uid | adminname | status | +----+-----------+-----------+--------+ | 6 | 0000028 | admin1 | 1 | | 13 | 0000016 | admin1 | 0 | | 16 | 0000018 | admin1 | 1 | +----+-----------+-----------+--------+ However, I also need to exclude photo_uid '0000016' and '0000018' because both of them are already tagged by 'admin2'. The only record that needs to be returned here is '0000028' ... I just don't know how to do that, or if it's even possible to do in a single query. I can get it done in two, but I'm hoping for a single query here ...