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

0

Я хочу написать запрос выбора, соединяя две таблицы. как это..

select entityid from  companytagrel left join taginfo on companytagrel.tagid=taginfo.tagid where taginfo.tag = "own" and taginfo.tag ="rocking";

где отношения между таблицами companytagrel и taginfo - N-> 1 Я хочу выбрать сущность, которая строго удовлетворяет условию, что его taginfo.tag является собственностью и качается.

Примечание. Компания может иметь любое количество тегов.

companytagrel column->(uniqueid,entityid,tagid)
taginfo column -> (tagid,tagname)
  • 0
    Вы хотите сказать, что вы хотите, чтобы сущности имели как собственный тег, так и тег rocking? Или хотите те, которые имеют ровно 2 тега: «собственный» и «качающийся»?
  • 0
    именно эти двое (покачивание, собственное)
Теги:
database

1 ответ

3
Лучший ответ

Вы можете сделать это, используя group by и having:

select ct.entityid
from companytagrel ct left join
     taginfo t
     on ct.tagid = t.tagid
where t.tag in ('own', 'rocking')
group by ct.entityid
having count(distinct t.tag) = 2;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню