Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql中关联两个表以显示名称行而不是id+;pdo_Mysql_Pdo_Innodb_Relation - Fatal编程技术网

如何在mysql中关联两个表以显示名称行而不是id+;pdo

如何在mysql中关联两个表以显示名称行而不是id+;pdo,mysql,pdo,innodb,relation,Mysql,Pdo,Innodb,Relation,我不知道在显示表1的结果时,如何在表2中显示行的名称而不是他的id 让我解释一下: 我在innoDB中有以下表格: - PACIENTES(table name). * id (int) * nombre (varchar) * apellido (varchar) * pais (varchar) * departamento (varchar) * ciudad (varchar) - lista_paises(table name).

我不知道在显示表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)
在table pacientes中,我保存了lista_paises、lista_Departmento、市政等的id

----id---nombre---apellido---pais---DEPARAMENTO---ciudad

我需要在页面中显示

 id   nombre  apellido     pais        departamento        ciudad

  1    Juan    Perez     El Salvador      Santa Ana        Santa Ana
我有这句话(另一句与departamento相同),但没有显示真正的departamento或真正的ciudad…始终只显示一个id为1的departamento或市政

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


我很抱歉,如果我的问题太长或不是很明白,但老实说,我不知道如何更好地解释这个问题。。。我希望你能帮我做这件事

你在表中有
市名
,在查询中有
市名

此外,市政府id_departmento=PACIENTES.ciudad上的
正在比较varchar和int

要加入
MUNICIPIOS
PACIENTES
,您需要在
MUNICIPIOS
表eg(
MUNICIPIOS.id\u PACIENTES
中有与
PACIENTES.id
相关的字段


表中有
nombre_市政
,查询中有
MUNICIPIOS.municipio_nombre

此外,市政府id_departmento=PACIENTES.ciudad上的
正在比较varchar和int

要加入
MUNICIPIOS
PACIENTES
,您需要在
MUNICIPIOS
表eg(
MUNICIPIOS.id\u PACIENTES
中有与
PACIENTES.id
相关的字段


谢谢@david,我在市政厅犯了错误,我已经换成市政厅了。关于你的句子,我在
=id
中有错误。。。我把它改成ciudad.但总是只给我看一个市名,总共有172个idusers@asterix_jv更改答案并解释是否有必要将相关字段与表容量关联?我可以联合或加入这个表格吗,即使没有相关的或我不能?谢谢@david,我在nombre_市政中犯了错误,我已经改成了nombre市政。关于你的句子,我在
=id
中有错误。。。我把它改成ciudad.但总是只给我看一个市名,总共有172个idusers@asterix_jv更改答案并解释是否有必要将相关字段与表容量关联?即使没有相关或我不能,我也可以合并或加入此表吗?
<?
    $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>
$sql = "SELECT PACIENTES.ciudad, MUNICIPIOS.municipio_nombre 
    FROM PACIENTES 
    INNER JOIN MUNICIPIOS 
    ON  PACIENTES.id = MUNICIPIOS.id_pacientes";