我有兩個名爲tblborrow和tblreturn的表,它們都有日期列。MySQL:在一個查詢中使用左連接和並集
現在,我想要做的是從tblborrow和tblreturn中顯示幾乎所有的列,按照date_borrowed和date_returned的順序排列。
我tblborrow包含以下幾列:
- borrow_id
- ISBN
- member_id
- staff_id
- date_borrowed
雖然tblreturn包含:
- return_id
- borrow_id
- staff_id
- date_returned
我已經做了展示他們與左連接使用此:
SELECT a.isbn, a.member_id, a.staff_id, a.date_borrowed, b.staff_id, b.date_returned
FROM tblborrow AS a left join tblreturn AS b on a.borrow_id = b.borrow_id
ORDER BY date_borrowed, date_returned
它給了我什麼,我需要除當然,date_returned和date_borrowed顯示在單獨的列中。
現在,我試圖通過測試使用UNION他們如果也給我我需要什麼,所以我用:
SELECT date_borrowed FROM tblborrow
UNION ALL
SELECT date_returned FROM returning
而且它也的確。但我需要這些僅在一個查詢中。我想簡單地將查詢像這樣:
SELECT a.isbn, a.member_id, a.staff_id, b.staff_id,
(SELECT date_borrowed FROM tblborrow
UNION ALL
SELECT date_returned FROM returning)
FROM tblborrow AS a left join tblreturn AS b on a.borrow_id = b.borrow_id
ORDER BY date_borrowed, date_returned
但它說:「子查詢返回多個1行」和我似乎仍不能徹底地段谷歌-ING之後做到這一點。
幫助,任何人?提前致謝!
您能否編輯您的問題以指定您的結果集中需要哪些列和行?你想要每行一行,還是每行一行?似乎有些物品已被借用但未歸還。這種情況下你想要什麼?其他項目已被借用,然後返回。這種情況下你想要什麼?當date_returned可用時,是否要使用date_returned值代替date_borrowed值(用於顯示和排序)? –
最初可以在其餘列上有空值,但Gordon Linoff的查詢已經提供了我所要求的(實際上更多)。不管怎麼說,還是要謝謝你。 :D – Suika