Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Leguim en 7 Septiembre 2019, 22:47 pm



Título: [Pregunta]: ON en una consulta con dos datos
Publicado por: Leguim en 7 Septiembre 2019, 22:47 pm
Buenas tardes!

No me acuerdo bien como se llamaba esto (tiene un nombre, por supuesto pero no me puedo acordar) digamos "entrelazar datos" que no se llama así, pero hagamos de cuenta.

tengo lo siguiente, una consulta:
Código
  1. SELECT U.id_user, U.name, U.surname, U.avatar, B.id_bloq, B.id_user, B.id_adm, B.type, B.reason FROM usuarios U INNER JOIN bloqueados B ON U.id_user = B.id_user, U.id_user = B.id_adm WHERE B.id_user = :id_user
  2.  

Esta consulta que les mostré estaría incorrecta, en la parte donde hago (no me maten, es que no me acuerdo como se dice  :xD) el "ON U.id_user = B.id_user" quisiera hacer otro ON pero con "U.id_user = B.id_adm" y no se como se hace, ya que la forma en como lo hice más arriba separando con la coma parece ser incorrecta.

Gracias!



Mod: Temas sobre SQL van a Bases de Datos.


Título: Re: [Pregunta]: ON en una consulta con dos datos
Publicado por: EdePC en 8 Septiembre 2019, 01:28 am
Saludos,

- Los INNER se usan para realizar consultas MultiTabla y los ON para especificar la relación de las claves primarias y/o foraneas de las tablas en cuestión. ON requiere una expresión, puedes usar un AND para agregar más expresiones de comparación pero ON solo debería de trabajar con el par de claves y dejarle el otro trabado a WHERE.

Código
  1. SELECT U.id_user
  2.     , U.name
  3.     , U.surname
  4.     , U.avatar
  5.     , B.id_bloq
  6.     , B.id_user
  7.     , B.id_adm
  8.     , B.TYPE
  9.     , B.reason
  10. FROM usuarios U
  11. INNER JOIN bloqueados B ON U.id_user = B.id_user AND U.id_user = B.id_adm

Código
  1. SELECT U.id_user
  2.     , U.name
  3.     , U.surname
  4.     , U.avatar
  5.     , B.id_bloq
  6.     , B.id_user
  7.     , B.id_adm
  8.     , B.TYPE
  9.     , B.reason
  10. FROM usuarios U
  11. INNER JOIN bloqueados B ON U.id_user = B.id_user
  12. WHERE U.id_user = B.id_adm



Mod: Obligatorio el uso de etiquetas GeSHi.


Título: Re: [Pregunta]: ON en una consulta con dos datos
Publicado por: Leguim en 8 Septiembre 2019, 01:52 am
Muchas gracias Ede (siempre salvandome las papas)!  ;-) ;-) ;-)