У меня есть база данных, включающая eventType и таблицы событий.
eventType
- id
- name
event
- id
- name
- location
- eventType_id
- eventSubType_id
Где eventType_id и eventTypeSubtype_id ссылаются на таблицу eventType.
Что я хочу сделать с спящим режимом, так это выбрать все события, которые имеют:
- тип события в (2,6)
- и eventSubType в (2, null)
Я сделал :
EventCriteria.createCritria("eventType").add(Expression.in("id"),new Long [] {2L,6L});
EventCriteria.createCriteria("eventSubType").add(Expression.in("id", new Long [] {2L,null}));
Выходные данные не учитывают события, которые имеют тип события с идентификатором (2 или 6), а eventSubType имеет значение null, они учитывают только события, которые имеют тип события с идентификатором (2 или 6) и тип события (2). Выход должен быть как
Благодарность
2 ответа
Предполагая, что ваши номера eventType являются идентификаторами...
select event
from Event event
where event.eventType_id in (2,6)
and (eventSubType is null
or eventSubType = 2)
Вы использовали eq
вместо in
...
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными. В вопросе всегда указывайте точную версию сервера. Версии 5.x сильно отличаются по своим возможностям от версий 8+.