簡體   English   中英

來自兩個表的MySQL,其中一個左連接

[英]MySQL from two tables with one left join

我有兩個表幾乎具有相同的列-視頻列表和畫廊列表。 然后,我想將其加入成員表,以便可以從成員ID中獲取成員名稱。 我最后得到的是按日期列排序的視頻和畫廊列表。 我知道如何單獨進行操作,但無法將其組合使用。 以下是單獨的查詢:

//Video Query
SELECT videos.vid, videos.mid, videos.source, videos.category, videos.title, videos.description, videos.date_added, videos.status, members.name FROM videos LEFT JOIN members ON videos.mid=members.mid WHERE videos.status = 'published' ORDER BY date_added

//Gallery Query    
SELECT galleries.vid, galleries.mid, galleries.directory, galleries.category, galleries.title, galleries.description, galleries.date_added, galleries.status, members.name FROM videos LEFT JOIN members ON videos.mid=members.mid WHERE galleries.status = 'published' ORDER BY date_added 

但是我不能讓它與兩個表的左連接一起工作。 兩個表使用同一列進行左連接,使用同一列進行排序。 我可以只查詢一次還是必須查詢兩者並進行某種合並?

最終結果將是這樣的:

- Video A by John
- Gallery A by John
- Video B by John
- Video C by Mary

等等

謝謝!

您可以結合查詢並編寫類似

SELECT 
  videos.vid,
  videos.mid,
  videos.source,
  videos.category,
  videos.title,
  videos.description,
  videos.date_added,
  videos.status,
  galleries.vid,
  galleries.mid,
  galleries.directory,
  galleries.category,
  galleries.title,
  galleries.description,
  galleries.date_added,
  galleries.status,
  members.name 
FROM
  videos 
  LEFT JOIN members 
    ON videos.mid = members.mid members.name 
FROM
  videos 
  LEFT JOIN members 
    ON videos.mid = members.mid 
    AND videos.status = 'published' 
  LEFT JOIN galleries 
    ON galleries.mid = members.mid 
AND galleries.status = 'published' 
ORDER BY galleries.date_added,videos.date_added 

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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