Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Вниззапрос Найти похожие ветки
← →
Grayver (2004-01-24 06:42) [0]помогите, пожалуйста, составить запрос для следуюшей ситуации:
существуют 2 таблицы - таблица клиентов и таблица описания использования ими неких товаров. в таблице использования есть поле, характеризующее степень использования товара (от 1-всегда до 7-никогда). из первой таблицы нужно выбрать тех клиентов, которые никогда не используют определенный товар. при этом нужно учесть, что во второй таблице или существует запись со значением использования 7, или записи с данным товаром не существует вовсе.
select table1.* from table1, table2 where table1.id=table2.id and table2.brand=mybrand and (table2.use=7 or ?)
← →
Lucky_elf (2004-01-24 15:27) [1]Вообще-то лучше видеть SQL таблиц, чтобы можно было что-то составить.
SELECT *
FROM TABLE1
WHERE ID = (SELECT ID
FROM TABLE2
WHERE BRAND = MYBRAND AND USE = 7)
Хотя ничего не гарантирую, что правельно понял вопрос.
← →
grayver (2004-01-25 10:27) [2]проблема несколько в другом - как мне задать условие НЕсуществования записи в таблице. Что-то вроде
select * from table1 where not exist (table1.id=table2.id and table2.brand=mybrand)
← →
ЮЮ (2004-01-26 02:41) [3]SELECT *
FROM
table1
LEFT JOIN table2 ON (table1.id=table2.id) AND (table2.brand = :mybrand)
Условие ON можно использовать не только как условие соединения table1 и table2, но и как фильтр для присоединяемой таблицы table2. Т.е. в предложенном запросе будет присоединяться на вся таблица table2, а только те записи, которые удовлетворяют второй части условия ( у которых table2.brand = :mybrand)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.01 c