当显示表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)
在表格中我保存了lista_paises,lista_departamento,municipios的id
----id----名称----apellido----pais----departamento----ciudad
1 Juan Perez 10 178 198
我需要在页面上显示
id nombre apellido pais departamento ciudad
1 Juan Perez El Salvador Santa Ana Santa Ana
我有这句话(与departamento的另一句是相同的),但没有显示真正的departamento或真正的ciudad…总是只显示一个departamento或municipio,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>
我很抱歉,如果我的问题太长或不太明白,但老实说,我不知道如何更好地解释这个问题。。。我希望你能帮我
最佳答案
表中有nombre_municipio
,查询中有MUNICIPIOS.municipio_nombre
。
同时ON MUNICIPIOS.id_departamento = PACIENTES.ciudad
正在比较varchar和int
若要加入MUNICIPIOS
和PACIENTES
,您需要在PACIENTES.id
表eg(MUNICIPIOS
)中有与MUNICIPIOS.id_pacientes
相关的字段
$sql = "SELECT PACIENTES.ciudad, MUNICIPIOS.municipio_nombre
FROM PACIENTES
INNER JOIN MUNICIPIOS
ON PACIENTES.id = MUNICIPIOS.id_pacientes";