Есть две таблички: manufacturers(manufacturerid, provider) и products(productid, manufacturerid, provider)
нужно выбрать manufacturerid из таблички manufacturers, по известному значению provider(например 111), но вытащить только те manufacturerid, у которых в табличке products нет записей с другими provider(кроме 111).
Спустя 18 минут, 40 секунд (10.05.2011 - 16:47) waldicom написал(а):
Немного странная структура. Для чего нужна таблица manufacturers, она получается полностью избыточна? или?
Спустя 8 минут, 18 секунд (10.05.2011 - 16:56) Riddick написал(а):
manufacturers нужна для хранения производителей продавцов(provider). Я привел не полную структуру, т.к. остальные поля это описания и т.п.
Фишка в том, что производитель от одного продавца может быть указан в качестве производителя у товара от другого продавца и какбы id такого производителя не нужно вытаскивать.
Фишка в том, что производитель от одного продавца может быть указан в качестве производителя у товара от другого продавца и какбы id такого производителя не нужно вытаскивать.
Спустя 59 минут, 23 секунды (10.05.2011 - 17:55) Riddick написал(а):
Вприципе решил через два запроса и php функцию:
$ids = "SELECT `manufacturerid`
FROM `manufacturers`
WHERE `provider` = '$provider'"
$no_del_ids = "SELECT DISTINCT `manufacturerid`
FROM `products`
WHERE `manufacturerid` IN (".join(',',$ids).") AND `provider` <> '$provider'"
$ids = array_diff($ids, $no_del_ids);