Pregunta

tengo consulta sql

select * from "Roles"  Join "Users"  On "Roles".Role="Users".RoleId

devuelve la columna de error Roles.role no existe

consulta

select * from "Roles"  Join "Users"  On Roles.Role=Users.RoleId

falta el error de devolución en la entrada de la cláusula FROM para la tabla " roles "

¿Cómo puedo resolver este problema? Yo siempre trabajo con ms sql

¿Fue útil?

Solución

No puede usar los roles de nombre en la condición de unión. Internamente, todos los nombres de tablas como Roles, ROLES, roles, RoLeS se convierten en roles (minúsculas). Cuando usas " Roles " ;, " ROLES " ;, " roles " ;, " RoLeS " el nombre se utiliza exactamente como lo ha escrito (sin conversión en minúscula), por lo que en la parte FROM se toman " Roles " y " Usuarios " Las tablas y en la condición de unión, los nombres de las tablas son roles y usuarios, y dichas tablas no existen.

La forma simple es usar solo nombres de tablas sin " " ;, simplemente use roles simples en lugar de " roles " para que pueda escribir roles o roles independientemente de las letras mayúsculas y minúsculas.

Otros consejos

escríbelo de esta manera:

select * from Roles  INNER JOIN Users  On (Roles.Role= Users.RoleId)

verifique INNER JOIN two tables para obtener más información. ..

o puede usar la forma simple en que funciona con la mayoría de los DBMS:

select * from Roles,Users where Roles.Role= Users.RoleId

Sospecho que necesitabas escribir " Roles ". " Role " = " Usuarios ". " RoleId " , porque se queja de no poder encontrar el nombre de la columna en minúscula.

Como han mencionado otros, generalmente es más fácil crear todo en minúsculas, incluso si usa mayúsculas y minúsculas en las consultas: por lo tanto, si la tabla se llama " roles " y la columna " rol " Puede escribir Roles.Role = Users.RoleId y los identificadores se convertirán en minúsculas detrás de la escena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top