Maneira correta de escrever consulta de junção sql para três tabelas

Winson Li:

Digamos que eu tenho três tabelas,
a tabela Usuário

|-----|------|
| id  | email|
|-----|------|

A tabela de funções

|-----|------|
| id  | name |
|-----|------|

E Um talble que mantém o relacionamento de Usuário e Função

|----------|---------|
| user_id  | role_id |
|----------|---------|

Aqui está a pergunta: se eu quero descobrir se um usuário tem uma função específica ( ADMINpor exemplo) ou não,
fiz algo assim:

select * from user inner join (user_role innner join role on role.id = user_role.role_id and role.name = 'ADMIN') on user.id = user_role.user_id where user.email = '[email protected]';

Quando executo esse sql no mysql, ele Unknown column 'user_role.role_id' in 'on clause'me informa por
que? E qual deve ser o sql correto?

dns_nx:

Esta consulta deve funcionar no seu caso solicitado:

select 
    * 
from 
    user 
inner join 
    user_role on user.id = user_role.user_id
inner join
    role on user_role.role_id = role.id
where
    role.name = 'ADMIN'
    and user.email = 'xxxx.google.com'

Você está aninhando incorretamente o seu joinsna sua consulta. É por isso que o erro é gerado. Compare sua consulta com a minha consulta acima.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Maneira correta de escrever testes para React

Consulta MySQL para obter o total de três tabelas

Por que minha consulta de junção não está dando o resultado esperado para três tabelas

Maneira correta de escrever uma consulta SQL de texto em Go

Selecione a consulta de três tabelas SQL

Consulta de junção SQL para uma visão com soma de colunas em 3 tabelas

Maneira melhor / correta de escrever uma consulta complexa

Dados de tabelas de junção de consulta SQL

Sintaxe para consulta de junção interna para 4 tabelas

Consulta de junção SQL para 3 tabelas não funciona

Consulta de junção de várias tabelas SQL

SQL - Consulta de junção de 3 tabelas

BigQuery junção de três tabelas

Consulta de junção de três tabelas não mostrando nenhum dado

Consulta de junção de banco de dados com três tabelas

Qual é a maneira correta de escrever uma consulta SQLite DataBase para obter o usuário e a senha da tabela de usuários

Maneira correta de escrever loops para promessa.

Consulta de junção do MySQL em três tabelas conectadas entre si

Esta é a maneira correta de escrever uma série de ponteiros?

Consulta de tabelas de junção JPA

Consulta SQL para unir três tabelas com condição

Como escrever esta consulta para três tabelas

Como escrever esta consulta para três tabelas

junção sql para três tabelas no laravel 5.3

laravel: whereHas consulta para obter dados de três tabelas

Escrever uma consulta SQL para retornar dados de várias tabelas

Consulta SQL para três pequenas tabelas

Maneira correta de escrever a função __repr__ com herança

Precisa de ajuda para juntar três tabelas em sql usando o método de junção e o método de concat

TOP lista

quentelabel

Arquivo