MYSQL Inner Join se instrução
estou tentando juntar 3 tabelas, mas use uma declaração IF para executar apenas uma determinada consulta
Tenho uma tabela de usuários, clientes e funcionários. A primeira parte abaixo funciona:
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
Preciso ver quem registrou o usuário, o que mostra boa qualidade, mas preciso exibir o nome da equipe se o nível do usuário for 2 ou o nome do cliente se o nível do usuário for 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)
Adicione o acima cria o erro
Nota / alias não exclusivos: 'staff'
Se eu remover a junção interna da equipe, obtenho o erro
Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à versão do servidor MySQL para obter a sintaxe correta perto de 'IF (user.level = 2)' na linha 6
Eu preciso mostrar apenas o nome do cliente ou da equipe, dependendo do nível, mas não consigo entender como estou entrando na mesa da equipe duas vezes. Uma vez para obter o membro da equipe que registrou o usuário e depois visualizar o nome da equipe (ou cliente
Para ajudar a facilitar as coisas, um exemplo da página que estou exibindo é:
username | nome | tipo de conta | registrado por
Espero que não tenha sido muito confuso para entende
Obrigado