[Pregunta]: INNER JOIN de dos campos

Iniciado por Leguim, 20 Septiembre 2019, 20:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Hace una o dos semanas no me acuerdo bien había preguntado sobre como podía "entrelazar datos" dentro de una consulta (nunca me acuerdo como se llama esto así que digamos.. "entrelazar")

Código (php) [Seleccionar]

"S*ELECT U.id_user, U.name, C.id_user FROM users U INNER JOIN comments C ON U.id_user = C.id_user WHERE (etcétera)"


Hay lo estoy haciendo con un sólo dato un (ID de usuario en este caso esa id será el ID del autor del comentario)
Pero en casos donde requiero dos o más datos había preguntado y me dijeron que poniendo un AND serviría (Lo cual creo que sirvió porque no me arrojo más errores)

Código (php) [Seleccionar]

"S*ELECT U.id_user, U.name, C.id_user, C.id_adm FROM users U INNER JOIN comments C ON U.id_user = C.id_user AND U.id_user = C.id_adm WHERE (etcétera)"


La pregunta sería como accedo a los diferentes datos es decir...

Código (php) [Seleccionar]

$datos = la_consulta;

if(!empty($datos))
{
     foreach($datos as $datos_foreach)
    {
          echo 'Nombre del usuario = '.$datos_foreach['name'];
          echo 'Nombre del admin = '.$datos_foreach['name'];
          // Imagino que me devolverá el mismo valor para cada echo y no debería ser así ya que el id_adm tiene un id totalmente diferente a el id_user
    }
}


No hace falta que intenten encontrar la lógica a esto de por que utilizo un id_adm en un ejemplo de comentarios o cosas de ese tipo ya que todo el código sólo sirve de ejemplo y para poder meterlos en contexto. Gracias.




Mod: Temas sobre Bases de Datos van al subforo de Bases de Datos.

engel lex

intentaste ejecutar el query antes?

pudes perfectamente ejecutar el query obtener los datos y usar printr o var_dump para ver el contenido... pero de antemano te digo

CitarU.id_user, U.name, C.id_user, C.id_adm

tienes 2 veces el mismo identificador, mysql te dirá que es una consulta ambigua... ya que es imposible retornar 2 resultados con el mismo nombre (por las razones que ya notaste) en ese caso tendrás que hacer algo como

CitarU.id_user AS UUser, U.name, C.id_user AS Cuser, C.id_adm
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Leguim

#2
Cita de: engel lex en 20 Septiembre 2019, 21:01 PM
intentaste ejecutar el query antes?

pudes perfectamente ejecutar el query obtener los datos y usar printr o var_dump para ver el contenido... pero de antemano te digo

tienes 2 veces el mismo identificador, mysql te dirá que es una consulta ambigua... ya que es imposible retornar 2 resultados con el mismo nombre (por las razones que ya notaste) en ese caso tendrás que hacer algo como


No creo haber entendido, es decir si decís por que los dos identificadores son "id_user" para eso use los alias tanto U. como C.

En otras consultas donde uso estos alias funciona correctamente la consulta. (aunque no se si te referías a eso)





Como sería para acceder a los diferentes datos, algo como..?
resultados[0] ['name'] y resultados[1] ['name']




Mod: Prohibido hacer doble post. Usar el botón "Modificar".

engel lex

has un var_dump... experimenta y ve el resultado por ti mismo! XD
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Leguim

Cita de: engel lex en 21 Septiembre 2019, 03:15 AM
has un var_dump... experimenta y ve el resultado por ti mismo! XD

Okay voy a ver gracias!