相关疑难解决方法(0)

MYSQL内部连接if语句

我正在尝试连接3个表,但使用IF语句只运行某个查询

我有一个用户表,客户和员工表.下面的第一部分有效:

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 
Run Code Online (Sandbox Code Playgroud)

我需要查看谁注册了显示正常的用户,但是如果用户级别为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)   
Run Code Online (Sandbox Code Playgroud)

添加以上内容会创建错误

不是唯一的表/别名:'staff'

如果我删除工作人员的内部联接我然后得到错误

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第6行的"IF(user.level = 2)"附近使用正确的语法

我只需要根据级别显示客户名称或员工姓名,但我无法理解我如何两次加入员工表.一旦获得注册用户的员工的成员,然后查看员工姓名(或客户).

为了简化操作,我要显示的页面示例如下:

用户名| 名字| 帐户类型| 注册

希望我没有让它太混乱,无法理解.

谢谢.

mysql if-statement

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

if-statement ×1

mysql ×1