我有3個表我想從中獲取信息。選擇與內部連接的數據
表
tblStaff
ID |命名
tblWork
用戶ID |本週
tblOff
用戶ID |周
例如,如果邁克爾在week
列的任何一個tblWork
或tblOff
列有值或多個值,那麼我希望返回這些值。
UPDATE
這一個作品幾乎我想要的。除此之外,如果tblOff
和tblWork
看起來是這樣的:
邁克爾=用戶標識1
丹=用戶標識2
tblWork
用戶ID,周
1 | 2014 v47
1 | 2014 v50
2 | 2014 V48
tblOff
用戶ID,周
1 | 2014 v48
1 | 2014 v49
2 | 2014 v52
然後我只得到邁克爾這兩個表中的第一個結果,我沒有得到兩個week
值。
SELECT tblStaff.name as name, tblWork.week as work_week, tblOff.week as off_week
FROM tblStaff
LEFT JOIN tblWork
ON tblStaff.id = tblWork.userid
LEFT JOIN tblOff
ON tblStaff.id = tblOff.userid
GROUP BY tblStaff.name
SLOVED
這就是我所做的。之後我使用爆炸()來分隔值,將其檢查本年度+周
SELECT tblStaff.name as name, GROUP_CONCAT(DISTINCT tblWork.week) as work_week, GROUP_CONCAT(DISTINCT tblOff.week) as off_week
FROM tblStaff
LEFT JOIN tblWork
ON tblStaff.id = tblWork.userid
LEFT JOIN tblOff
ON tblStaff.id = tblOff.userid
GROUP BY tblStaff.name
ORDER BY tblStaff.name ASC
你能提供一個你想看到什麼和你的表是什麼樣子的樣本? – 2014-11-21 21:07:03
我更新了問題。現在,它沒有列出任何東西。沒有錯誤,所以我一定在問錯誤的問題。 – MrUnknown 2014-11-21 21:13:40
你有兩個選擇,我可以想到在我的頭頂查詢。您可以對concat進行分組,它將組合所有列中的條目,按您選擇的內容(例如,如果需要的話,將HTML代碼塊分隔)返回爲特定分組值的一列(例如名稱以獲取所有條目一個名字的值)。或者你可以使查詢更加複雜。 – 2014-11-21 21:19:14