当显示表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
若要加入MUNICIPIOSPACIENTES,您需要在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";

09-17 00:10