Выбор двух полей из двух разных таблиц как одного (с помощью объединения) (MYSQL) - PullRequest
0 голосов
/ 27 октября 2011

У меня есть следующий SQL, выбирающий статьи двумя разными способами. Все статьи хранятся в таблице статей. Некоторые помечены как Article Of The Month (Articles_Fitness), в то время как другие помечены как чисто пригодные статьи (ArticlesInCategories).

Моя проблема заключается в том, что мне нужно выбрать и Articles_Fitness.StartDate, и Articles.PublicationDate в качестве Formatted_Date. Возможно ли это, или мне нужно будет пометить их как Formatted_Date1 и Formatted_Date2, а затем проверить, вывести это?

SELECT 
       Articles.ArticleID, 
       Articles.Title, 
       Articles.Author, 
       Articles.Abstract, 
       date_format(Articles_Fitness.StartDate, '%M %d, %Y') AS Formatted_Date,
       date_format(Articles.PublicationDate, '%M %d, %Y') AS Formatted_Date
     FROM 
       Articles 
       LEFT JOIN Articles_Fitness
            ON Articles_Fitness.ArticleID = Articles.ArticleID
            AND Articles_Fitness.StartDate <= CURDATE()
       LEFT JOIN ArticlesInCategories 
            ON ArticlesInCategories.ArticleID = Articles.ArticleID
            AND ArticlesInCategories.CategoryID = '1'
     WHERE 
       Articles.Body IS NOT NULL AND
       Articles.Body != '' AND
       Articles.Public ='1'

1 Ответ

1 голос
/ 27 октября 2011

Вы говорите, что хотите Articles_Fitness.StartDate, если присутствует, в противном случае Articles.PublicationDate? Вы можете вернуть это в одном столбце:

...
DATE_FORMAT(COALESCE(Articles_Fitness.StartDate, Articles.PublicationDate),
            '%M %d, %Y') AS Formatted_Date
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...