SQL - как заказать по дате из двух таблиц? - PullRequest
1 голос
/ 20 января 2012

Я постараюсь четко задать свой вопрос ...

У меня есть три таблицы, каждая из которых содержит значение даты.У Node и Product есть дата создания, а у Shared - дата времени.Мне нужно выяснить, как сделать заказ на одну дату ... Мне нужно объединить обе даты вместе ...

это должно вписаться в это утверждение

SELECT sc.auto_id AS autoid, sc.uid AS sharedby, n.nid, sc.message AS sharedmessage, 
    (
SELECT COUNT(1) 
FROM {share_content} AS sc2
  WHERE sc2.nid = sc.nid
) AS countnid 
FROM {node} n LEFT JOIN {content_type_product} p on n.nid = p.nid 
  LEFT JOIN {share_content} sc on sc.auto_id=
(
SELECT MAX(auto_id) FROM share_content sc1
WHERE sc1.nid = n.nid 
LIMIT 1
) 
WHERE (
    n.type = 'blog' 
    OR n.type = 'field_school' 
    OR n.type = 'photo_gallery' 
    OR n.type = 'forum' 
    OR n.type = 'product_review' 
    OR n.type = 'product' and p.field_front_page_value = 'Add to feed'
    OR n.type = 'reference'
    OR n.type = 'video_gallery'
    OR n.type = 'video'   
    OR n.type = 'groups' 
    OR n.type = 'group_post'  
    OR n.type = 'status' 
    OR (n.type = 'event' AND n.uid != '2')
    OR n.type = 'jobs_careers'
    OR n.type = 'post_link'
    OR (n.type = 'news_article' AND n.uid != '2' AND n.uid != '0'))  
AND n.status = '1' 
ORDER BY n.created DESC";

(потребности заказабыть слиянием n.created, p.created и sc.date_shared) ...

Спасибо,

Мэтт

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Используйте «SELECT AS», чтобы переименовать столбец в третьей таблице для запроса

0 голосов
/ 20 января 2012

Ужасающая !!!

ORDER BY 
(CASE WHEN Table2.Id IS NULL AND Table3.Id IS NULL THEN Table1.Created_on
      WHEN Table2.Is IS NULL 
       THEN (CASE WHEN Table1.CreatedOn <= Table3.CreatedOn THEN Table1.CreatedOn 
                  ELSE Table3.CreatedOn END)
      WHEN Table3.Id IS NULL
       THEN (CASE WHEN Table1.CreatedOn <= Table2.timestamp THEN Table1.CreatedOn 
                  ELSE Table2.timestamp END)
      WHEN Table1.CreatedOn <= Table3.CreatedOn AND Table1.CreatedOn <= Table2.timestamp
       THEN Table1.CreatedOn
      WHEN Table3.CreatedOn <= Table1.CreatedOn AND Table3.CreatedOn <= Table2.timestamp
       THEN Table3.CreatedOn
      ELSE Table2.timestamp END)
...