2016-01-31 2 views
-2

У меня есть мульти выберите запрос, и мне нужно пересекаться результат исполнения
запроса:Mysql ПЕРЕСЕЧЕНИЕ не работает



select pro_id from product_extra_data where type_filed_id='1' and value like '%Intel Xeon%' 
intersect 
select pro_id from product_extra_data where type_filed_id='3' and value like '%15%' 
intersect 
select pro_id from product_extra_data where type_filed_id='49' and value like '%8GB%' 
intersect 
select pro_id from product_extra_data where type_filed_id='50' and value like '%460W%' 
intersect 
select pro_id from product_extra_data where type_filed_id='47' and value like '%1%' 
intersect 
select pro_id from product_extra_data where type_filed_id='51' and value like '%5U%' 
+2

Так в чем же проблема? Вызывает ли запрос ошибку? Неправильный результат? – Mureinik

+0

Внутреннее соединение будет делать именно то, что вы ищете, не так ли? Где pro_id == pro_id, тогда просто выберите один столбец, хотя я не уверен, насколько он эффективен – cujo

ответ

1

MySQL не поддерживает пересекаются, но в данном контексте вы можете получить тот же результат с группой по запросу:

select 
    pro_id 
from 
    product_extra_data 
where 
    (type_filed_id='1' and value like '%Intel Xeon%') 
    or 
    (type_filed_id='3' and value like '%15%') 
    or 
    (type_filed_id='49' and value like '%8GB%') 
    or 
    (type_filed_id='50' and value like '%460W%') 
    or 
    (type_filed_id='47' and value like '%1%') 
    or 
    (type_filed_id='51' and value like '%5U%') 
group by 
    pro_id 
having 
    count(distinct type_filed_id)=6