1

我不知道在显示表 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-----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...总是只显示一个 id 为 1 的 departamento 或 municipio

<?
    $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>

很抱歉,如果我的问题太长或不太了解,但老实说,我不知道如何更好地解释这个问题......我希望你能帮助我

4

1 回答 1

1

你有nombre_municipio在表和MUNICIPIOS.municipio_nombre查询中。

ON MUNICIPIOS.id_departamento = PACIENTES.ciudad将 varchar 与 int 进行比较

要加入MUNICIPIOSPACIENTES您需要PACIENTES.idMUNICIPIOS表中具有相关字段,例如 ( MUNICIPIOS.id_pacientes)

$sql = "SELECT PACIENTES.ciudad, MUNICIPIOS.municipio_nombre 
    FROM PACIENTES 
    INNER JOIN MUNICIPIOS 
    ON  PACIENTES.id = MUNICIPIOS.id_pacientes";
于 2013-06-23T18:16:30.303 回答