Общие > Базы данных
Великий и могучий SELECT или не могу сделать выборку
ActiveX:
Есть две таблицы в одной базе MySQL:
одна T1, поля:
Order_ID INT(11) auto_increment NOT NULL (PRIMARY KEY)
Order_Price INT(11)
вторая T2, поля:
Customer_ID
Order_ID
Customer_Price
Как выбрать все (уникальные) Order_ID`ы из таблицы T1, которых нет у определенного Customer_ID`a из таблицы T2? Обычный SQL-запрос типа «SELECT DISTINCT(T1.Order_ID) FROM T1, T2 WHERE T1.Order_ID!=T2.Order_ID AND Customer_ID=$id» не помогают...
Макс:
в общем случае, если надо найти записи, которых нет во второй таблице, то надо делать через LEFT JOIN
Посмотри там пример.
По твоему вопросу примерно так делать надо (ИМХО) :
--- Код: ---
SELECT DISTINCT T1.Order_ID FROM T1
LEFT JOIN T2 ON T1.Order_ID = T2.Order_ID
WHERE T2.Customer_ID = $id AND T2.Order_ID IS NULL
--- Конец кода ---
ActiveX:
Yaaaahhhhhhhhhhhooooooooooooo!
Спаисбо за скорый ответ! Сегодня попробовать не смогу все завтра... Поэтому результаты сообщю завтра (вернее уже сегодня, но днем). А ввобще признаю — всегда думал, что JOIN используется только при выборке данных из таблицы, объединенной с самой собой...
ActiveX:
А, кстати, Order_ID не может быть “NULL” (IS NOT NULL)
Макс:
--- Цитировать ---ActiveX:
А, кстати, Order_ID не может быть “NULL” (IS NOT NULL)
--- Конец цитаты ---
я так понимаю, ты текст по ссылке не читал ?
Навигация
Перейти к полной версии