簡體   English   中英

聯接多個表一個查詢

[英]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

結果:良好

joinPagesArticlesResult 加入:

文章(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丟失(文章標題)

joinTextImagesVideos

我希望能夠在一張桌子上全部加入。 以及讓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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM