我試圖加入3個表一起,但使用中間語句來只運行某個查詢MYSQL內部加入如果語句
我有一個用戶表,客戶和員工表。以下作品第一部分:
SELECT user.`userID`, `username`, `user`.email, `registeredBy`, `registeredDate`,
CONCAT(staff.firstName, ' ' ,staff.lastName) AS staffName FROM `user`
INNER JOIN `level` ON `user`.levelID = `level`.levelID
INNER JOIN `staff` ON `user`.registeredBy = `staff`.userID
我需要查看誰登記,顯示精細的用戶,但後來我需要查看任何工作人員的名字,如果用戶的級別爲2或客戶名稱,如果用戶的級別爲1
INNER JOIN `staff` ON `user`.userID = staff.userID IF (user.level = 2)
INNER JOIN `customer` ON user.userID = customer.userID IF(user.level = 1)
添加上面創建錯誤
不是唯一的表/別名: '員工'
如果我刪除工作人員的內部連接,則會發生錯誤
您的SQL語法錯誤; 檢查對應 你的MySQL服務器版本的 正確的語法附近 使用手冊「IF(user.level = 2)」第6行
我只需要證明客戶名稱或工作人員的名字取決於水平,但我無法理解我是如何兩次參加員工表的。一旦獲得註冊用戶的員工的記憶,然後查看員工姓名(或客戶)。
爲了讓我在顯示頁面的事情變得更簡單的例子是:
用戶名|名稱|賬戶類型| 註冊
希望我沒有把它弄糊塗得明白。
謝謝。
謝謝!只有一個問題,員工似乎總是得到相同的名字,但客戶工作正常? – Elliott 2011-04-07 18:14:39
所以這是一個不同的工作人員(即,不是註冊的)。 NP。將修復 – Thomas 2011-04-07 18:17:32
@Elliott - 訣竅是使用一個不同的別名第二次加入職員。 – Thomas 2011-04-07 18:20:26