Выберите из нескольких таблиц группы по идентификатору со временем - PullRequest
0 голосов
/ 18 апреля 2011

Я пытаюсь выбрать данные из нескольких таблиц, но я не уверен, что внутреннее объединение является правильным подходом.У меня есть две таблицы, одна с comments.userid и comments.comment, другая с votes.userid, и у обеих также есть столбец time.

select comments.comment, voted.time, comments.time
from voted
inner join comments on voted.userid = comments.userid
where voted.userid = '12345'
order by voted.time

Но теперь мои строки имеют значения вvoted.time и comments.time даже если они должны быть отдельными.Есть ли способ просто вернуть комментарий или голосование, но к нему добавлен идентификатор пользователя и отсортировать по общему времени?

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Вы можете попробовать что-то вроде этого.Если вы поместите это в представление, вы можете выполнить ORDER BY при вызове представления.Фильтрация по ИД пользователя также может быть выполнена в вызове view.

select 'V' as type, v.userid, v.time from votes v where v.userid = '1234'
union
select 'C' as type, c.userid, c.time from comments c where c.userid = '1234'
0 голосов
/ 18 апреля 2011

Согласно тому, что вы сказали, логика фильтрации и объединения выглядит правильно.Просто добавьте / удалите столбцы в операторе выбора, которые вы хотите / не хотите возвращать в извлеченном наборе данных.

...