我不知道在显示表1的结果时如何显示表2中行的名称而不是他的id。
让我解释一下:
我在innoDB中有这些表:
- PACIENTES(table name).
* id (int)
* nombre (varchar)
* apellido (varchar)
* pais (varchar)
* departamento (varchar)
* ciudad (varchar)
- lista_paises(table name).
* id (int)
* opcion (varchar)
- lista_departamento(table name).
* id_departamento (int)
* opcion (varchar)
* relacion (int)-----relation with table lista_paises----
- MUNICIPIOS(table name).
* id_municipio (int)
* id_departamento (int)-----relation with table lista_departamento----
* municipio_nombre (varchar)
在表pacientes我保存了lista_paises,lista_departamento,municipios的id
---- ---- ID NOMBRE ----- ----- apellido派斯---- ----阿雅城
1 Juan Perez 10 178 198
我需要在页面中显示
id nombre apellido pais departamento ciudad
1 Juan Perez El Salvador Santa Ana Santa Ana
我有这个句子(另一个与departamento相同的句子是相同的),但没有显示真正的离开或真正的ciudad ...总是只显示一个id为1的部门或者城市
<?
$sql = "SELECT PACIENTES.ciudad, MUNICIPIOS.municipio_nombre
FROM PACIENTES INNER JOIN MUNICIPIOS
ON MUNICIPIOS.id_departamento = PACIENTES.ciudad";
$stmt = $conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$municipio_nombre = $row['municipio_nombre'];
?>
<td><? echo $municipio_nombre ?></td>
我很抱歉,如果我的问题太久或者不太了解,但说实话,我不知道如何更好地解释这个问题......我希望你能帮我解决这个问题
答案 0 :(得分:1)
您在表格中有nombre_municipio
,在查询中有MUNICIPIOS.municipio_nombre
。
同样ON MUNICIPIOS.id_departamento = PACIENTES.ciudad
正在将varchar与int进行比较
要加入MUNICIPIOS
和PACIENTES
,您需要在PACIENTES.id
表中提供与MUNICIPIOS
相关的字段,例如(MUNICIPIOS.id_pacientes
)
$sql = "SELECT PACIENTES.ciudad, MUNICIPIOS.municipio_nombre
FROM PACIENTES
INNER JOIN MUNICIPIOS
ON PACIENTES.id = MUNICIPIOS.id_pacientes";