Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос [D6, MySQL]


Grayver ©   (2004-01-24 06:42:00) 

помогите, пожалуйста, составить запрос для следуюшей ситуации:
существуют 2 таблицы - таблица клиентов и таблица описания использования ими неких товаров. в таблице использования есть поле, характеризующее степень использования товара (от 1-всегда до 7-никогда). из первой таблицы нужно выбрать тех клиентов, которые никогда не используют определенный товар. при этом нужно учесть, что во второй таблице или существует запись со значением использования 7, или записи с данным товаром не существует вовсе.

select table1.* from table1, table2 where table1.id=table2.id and table2.brand=mybrand and (table2.use=7 or ?)


ЮЮ   (2004-01-26 02:41:00) [1]

SELECT *
FROM
table1
LEFT JOIN table2 ON (table1.id=table2.id) AND (table2.brand = :mybrand)

Условие ON можно использовать не только как условие соединения table1 и table2, но и как фильтр для присоединяемой таблицы table2. Т.е. в предложенном запросе будет присоединяться на вся таблица table2, а только те записи, которые удовлетворяют второй части условия ( у которых table2.brand = :mybrand)


grayver   (2004-01-25 10:27:00) [2]

проблема несколько в другом - как мне задать условие НЕсуществования записи в таблице. Что-то вроде

select * from table1 where not exist (table1.id=table2.id and table2.brand=mybrand)


Lucky_elf   (2004-01-24 15:27:00) [3]

Вообще-то лучше видеть SQL таблиц, чтобы можно было что-то составить.

SELECT *
FROM TABLE1
WHERE ID = (SELECT ID
FROM TABLE2
WHERE BRAND = MYBRAND AND USE = 7)


Хотя ничего не гарантирую, что правельно понял вопрос.


Наверх

Титульная страница Поиск, карта сайта Написать письмо