|
автор: 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)
незнаю правиль но ли изложил суть проблемы.... | |
|
|
|
|
|
|
|
для: 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 :( | |
|
|
|
|
|
|
|
для: Samsono
(26.05.2006 в 18:32)
| | Представленный вами запрос выберет записи с произвольным field_id - так и нужно? | |
|
|
|
|
|
|
|
для: Samsono
(26.05.2006 в 18:32)
| | То есть u_id - не является первичным ключом этой таблицы?
Потому что в противном случае Ваш запрос ничего не выведет.
В таблице просто не найдется строк, где value равно одновременно и E32 и BMW 740. | |
|
|
|