MySQL Query Order Три поля разности - PullRequest
3 голосов
/ 10 февраля 2012

Допустим, у меня есть три таблицы (post, wall, photo)

post (id, post_uid, post_content, post_timestamp)

wall (id, wall_from, wall_to, wall_content, wall_timestamp)

photo (id, photo_gid (ссылка на идентификатор галереи), photo_caption, photo_filename, photo_timestamp)

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

что мне делать?Должен ли я создать новую таблицу, или это можно заказать из трех полей?

1 Ответ

1 голос
/ 10 февраля 2012

Для заказа самое позднее первое

select *
from post
join wall on ...
join photo on ...
where ...
order by greatest(post_timestamp, wall_timestamp, photo_timestamp) desc

или, чтобы заказать самое раннее первое:

...
order by least(post_timestamp, wall_timestamp, photo_timestamp)
...