У меня есть две таблицы:
values
таблица:
eventid | elementid | value
-------------------------------
10 | 1 | 1234
11 | 1 | 5678
12 | 1 | 5678
10 | 2 | true
11 | 2 | true
Таким образом, таблица values
может иметь несколько значений для одного и того же elementid
.
events
таблица:
eventid | eventuid
-------------------
10 | abcdef
11 | ghijkg
12 | vwxyz
Моя цель - создать запрос, отображающий
value | value | eventuid
-----------------------------
true | 1234 | abcdef
- Столбец A: значение для
element
с идентификатором 1
- Столбец B: значение для
element
с идентификатором 2
- Столбец C: eventuid
Ограничения: только отображениестрока, если -
-
value
для elementid=1
уникальна в таблице values
, т. е. нет eventuid
s с таким же значением для того же elementid
= 1
value
для elementid=2
равно true
.
Моя попытка была сначала создать представление:
create view unique_event as
select distinct e.eventuid, count(v.value)
from events e
join values v on e.eventid = v.eventid
where v.elementid = 1
group by e.eventuid
having count(v.value) = 1;
Это, похоже, недля правильной работы, чтобы возвращать только отличные eventuid
s - - почему-то это не отфильтровывает дубликаты (как указано выше).
Каков наилучший способ достижения поставленной цели?Есть ли лучший способ, чем иметь отдельный вид?