Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос с несколькими условиями
 
 автор: Samsono   (26.05.2006 в 18:13)
 
 

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

u_id field_id value
1 3 E32
1 2 BMW xxx
1 7 2310
2 3 E32
2 2 BMW 740
2 7 2310
3 3 E30
3 2 BMW 318
3 7 2310

Надо выбрать из неё такие u_id у которых если (field_id=3 то value=E32), и в тоже время если (field_id=2 то value=BMW 740)

незнаю правиль но ли изложил суть проблемы....

   
 
 автор: Trianon   (26.05.2006 в 18:19)   письмо автору
 
   для: Samsono   (26.05.2006 в 18:13)
 


SELECT u_id FROM tab
WHERE (field_id = 3 AND value = 'E32') 
         OR  (field_id = 2 AND value = 'BMW 740') 

   
 
 автор: Samsono   (26.05.2006 в 18:32)
 
   для: Trianon   (26.05.2006 в 18:19)
 

В том то и дело что OR не катит т.к. мне надо чтобы выполнялись обе части условия.
Если бы у меня был Mysql версии 4.1. или выше то я бы сделал так:


SELECT u_id from acm_fields_values where value="E32" AND u_id IN ( SELECT u_id from acm_fields_values where value="BMW 740") 


но у меня 4.0.20 :(

   
 
 автор: cheops   (26.05.2006 в 21:51)   письмо автору
 
   для: Samsono   (26.05.2006 в 18:32)
 

Представленный вами запрос выберет записи с произвольным field_id - так и нужно?

   
 
 автор: Trianon   (26.05.2006 в 21:56)   письмо автору
 
   для: Samsono   (26.05.2006 в 18:32)
 

То есть u_id - не является первичным ключом этой таблицы?
Потому что в противном случае Ваш запрос ничего не выведет.
В таблице просто не найдется строк, где value равно одновременно и E32 и BMW 740.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования