PHP - inner join

 
Vista:

inner join

Publicado por noe (178 intervenciones) el 27/01/2023 03:16:36
Hola foro!!!

Esperando me puedan ayudar y es con lo siguiente no puedo unir 2 tablas
con inner join, (la tabla evolucion) tiene los siguientes campos

cod_pac,fec_cita,motivo,diagnostico,medicinas,indicaciones

código del paciente,fecha de cita,motivo de consulta,diagnostico enfermedad
,medicinas e indicaciones aquí se registra las citas que haya tenido el paciente

(la tabla paciente) tiene los siguientes campos
cod_pac,nombre y apellidos tiene más campos pero que me importa son nombre y apellido

la conexión la estoy haciendo PDO me podrían por favor indicarme como se arma el SELECT

GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

inner join

Publicado por Kathyu (905 intervenciones) el 27/01/2023 14:24:07
Iría algo como lo siguiente:

1
2
3
SELECT P.nombre, P.apellidos, E.fec_cita, E.motivo, E.diagnostico FROM paciente P
INNER JOIN evolucion E ON E.cod_pac = P.cod_pac
WHERE P.cod_pac = 123

Lee sobre los JOIN MySQL y cualquier cosa acá estamos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por Noe (178 intervenciones) el 27/01/2023 15:57:27
Hola Kathyu!!!
gracias por responder he visto mucho ejemplos en youtube inner join, left join y
right join en todo el array me sale vacio.

asi tengo la conexion
<?php
try {
$pdo = new PDO("mysql:dbname=cita_medica_db; host=localhost","root","11223344");
} catch (Exception $e) {
echo "Error en la Base de Datos...".$e->getMessage();
}

este es el script donde intento juntar las tablas
include_once("conecta.php");
$cod = $_GET['pcod'];

$pide = $pdo->prepare("SELECT p.nom, p.ape, e.motivo, e.diagnostico, e.medicinas,
e.indicaciones
From pacinete e
INNER JOIN evolucion ON p.cod_pac = e.cod_pac Where p.cod_pac= ? ");
$pide->execute([$cod]);
$datos = $pide->fetchall(PDO::FETCH_ASSOC);

var_dump($datos);

tengo como 10 ejemplos y en todos el array lo muestra vacio

que estoy haciendo mal?
GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por Noe (178 intervenciones) el 27/01/2023 16:05:15
perdon...

$pide = $pdo->prepare("SELECT p.nom, p.ape, e.motivo, e.diagnostico, e.medicinas, e.indicaciones
From pacinete p
INNER JOIN evolucion e ON e.cod_pac = p.cod_pac Where p.cod_pac= ? ");
$pide->execute([$cod]);
$datos = $pide->fetchall(PDO::FETCH_ASSOC);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

inner join

Publicado por Kathyu (905 intervenciones) el 27/01/2023 16:15:34
Disculpa que suene tan mal pero sino colocas tu código en el tag de código no podré ayudarte. Es muy difícil leer texto plano sin formato.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por Noe (178 intervenciones) el 27/01/2023 19:27:11
disculpa mi ignorancia

cual es el tag de codigo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

inner join

Publicado por Kathyu (905 intervenciones) el 27/01/2023 19:32:25
Justo es la primer etiqueta que hay arriba del textarea de escritura. y dice </>Código

no es lo mismo esto:
$pide = $pdo->prepare("SELECT p.nom, p.ape, e.motivo, e.diagnostico, e.medicinas, e.indicaciones
From pacinete p
INNER JOIN evolucion e ON e.cod_pac = p.cod_pac Where p.cod_pac= ? ");
$pide->execute([$cod]);
$datos = $pide->fetchall(PDO::FETCH_ASSOC);

que esto
1
2
3
4
5
6
7
$pide = $pdo->prepare("
SELECT p.nom, p.ape, e.motivo, e.diagnostico, e.medicinas, e.indicaciones
From pacinete p
INNER JOIN evolucion e ON e.cod_pac = p.cod_pac
Where p.cod_pac= ? ");
$pide->execute([$cod]);
$datos = $pide->fetchall(PDO::FETCH_ASSOC);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por Yamil Bracho (22 intervenciones) el 27/01/2023 17:29:29
Te dio un tip... Trata de ejecutar la consulta en un cliente de la base de datos que este usando y cuando te funcione, corlalo y pegalo en tu codigo..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por Noe (178 intervenciones) el 30/01/2023 19:03:07
Gracias por contestar Kathyu y Yamil.....
algo caprichoso este lenguaje se resolvio asi

1
2
3
4
5
6
$pide = $pdo->prepare("SELECT e.cod_pac,e.fecha,e.motivo,e.diagnostico, e.medicinas, e.indicaciones,
   concat(p.nom,' ',p.ape) as nom, p.cod_pac
   From evolucion e
   INNER JOIN paciente p Where e.cod_pac = ? and p.cod_pac = ? ");
$pide->execute([$cod1,$cod2]);
$datos = $pide->fetchall(PDO::FETCH_OBJ);

el problema era el ON
GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

inner join

Publicado por Kathyu (905 intervenciones) el 30/01/2023 19:08:24
Pero el ON es el que une las tablas en base a la referencia igual entre ambas, su INNER está mal aplicado.

El parámetro del ID únicamente debería ir después del WHERE como se lo respondí al inicio. Igual e.cod_pac y p.cod_pac en teoría es lo mismo, únicamente con uno bastaría.

1
2
3
SELECT e.cod_pac,e.fecha,e.motivo,e.diagnostico, e.medicinas, e.indicaciones, concat(p.nom,' ',p.ape) as nom
From evolucion e
INNER JOIN paciente p ON p.cod_pac = e.cod_pac Where e.cod_pac = ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por Noe (178 intervenciones) el 31/01/2023 16:58:57
hay 2 formas inplicitamente y la otra no recuerdo.... estube buscando por ahi
como dicen en mi pueblo si no es juana es chana
la cosa es que funcione
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar