Присоединиться к нескольким таблицам одним запросом - PullRequest
0 голосов
/ 09 октября 2018

У меня есть 5 таблиц страниц, статей, текста, изображений и видео.

Мой вопрос: как я могу получить

page- (pk) pageId

article- (pk) articleId, (fk) pageId.

SELECT pageTitle, GROUP_CONCAT(articleTitle) 
FROM pages 
JOIN articles ON articles.pageId = pages.pageId 
GROUP BY pageTitle

РЕЗУЛЬТАТЫ: ХОРОШО

joinPagesArticlesResult для присоединения:

article (pk) articleId

text- (fk) articleId

images (fk) articleId

videos (fk) articleId

SELECT pageTitle, GROUP_CONCAT(articleTitle) AS articleTitle, 
group_concat(textId) AS textId, group_concat(text) AS text, 
group_concat(imageId) AS imageId,group_concat(imageLoc) AS imageLoc , 
group_concat(videoId) AS videoId,group_concat(videoLoc) AS videoLoc 
FROM articles 
JOIN pages ON pages.pageId = articles.pageId  
JOIN text ON text.articleId = articles.articleId
JOIN images ON images.articleId = articles.articleId
JOIN videos ON videos.articleId = articles.articleId
GROUP BY pageTitle

РЕЗУЛЬТАТЫ: MISSING TYSON1 из GROUP_CONCAT (articleTitle)

joinTextImagesVideos

Я хочу иметь возможность объединить все за одним столом.А также получить tyson1 для отображения в запросе.Не уверен, почему это не отображается.Я не уверен, что я делаю правильный тип соединения, если мне нужны два оператора SELECT для получения этих данных, или если я не делаю псевдоним правильно.

Столбцы в каждой таблице идут следующим образом

страниц:

Page columns

артикулов:

Article Columns

текст:

Text Columns

изображения:

Image Columns

Видео:

Videos Columns

1 Ответ

0 голосов
/ 09 октября 2018

Попробуйте следующий запрос, который использует левое соединение:

SELECT
    pageTitle,
    GROUP_CONCAT(articleTitle) AS articleTitles,
    GROUP_CONCAT(textId) AS textIds,
    GROUP_CONCAT(text) AS texts,
    GROUP_CONCAT(imageId) AS imageIds
    GROUP_CONCAT(imageLoc) AS imageLocs,
    GROUP_CONCAT(videoId) AS videoIds,
    GROUP_CONCAT(videoLoc) AS videoLocs
FROM
    articles
JOIN
    pages ON pages.pageId = articles.pageId
LEFT JOIN
    text ON text.articleId = articles.articleId
LEFT JOIN
    images ON images.articleId = articles.articleId
LEFT JOIN
    videos ON videos.articleId = articles.articleId
GROUP BY
    pageTitle
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...