如何选择行组合列值

时间:2016-05-10 13:05:04

标签: mysql sql

我的表格search_settings的内容如下:

    +-----------+-------------+----------+
    | entity_id | language_id | query_id |
    +-----------+-------------+----------+
    |         2 |          71 |      141 |
    |         3 |          72 |      141 |
    |         4 |          73 |      141 |
    |         4 |          74 |      142 |
    |         4 |          75 |      142 |
    +-----------+-------------+----------+

如何选择其中包含language_id = 71和language_id = 72且language_id = 73的现有条目的唯一query_id

例如,如果query_id = 142language_id=74我需要language_id=75行,但如果language_id=999language_id=75它应该什么都不返回? 有可能吗?

1 个答案:

答案 0 :(得分:1)

使用group byhaving一起检查query_id是否具有与之关联的所有必需的language_id。

select query_id
from tablename
group by query_id
having sum(case when language_id in (74,75) then 1 else -1 end) = 2