[英]Join on multiple tables one query
我有5個表格的頁面,文章,文本,圖像和視頻。
我的問題是我怎么能
page-(pk)pageId
文章-(pk)articleId,(fk)pageId。
SELECT pageTitle, GROUP_CONCAT(articleTitle)
FROM pages
JOIN articles ON articles.pageId = pages.pageId
GROUP BY pageTitle
結果:良好
文章(pk)articleId
文字-(fk)articleId
images(fk)articleId
視頻(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
結果:GROUP_CONCAT中的TYSON1丟失(文章標題)
我希望能夠在一張桌子上全部加入。 以及讓tyson1顯示在查詢中。 不知道為什么它不顯示。 我不確定我是否在執行正確的連接類型,是否需要兩個SELECT語句來獲取此數據,或者我是否未正確執行別名。
每個表中的列如下
頁面:
文章:
文本:
圖片:
影片:
嘗試使用左聯接的下一個查詢:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.