如何连接来自mysql中两个不同表的数据(LEFT JOIN)?

和平爱

我想从mySQL数据库连接两个不同表的数据。这运作良好,但我有一个小问题:

 $sql = "SELECT  *  FROM person h LEFT JOIN animals o ON ( o.name = h.name);" ;

person

| id | name | age |
|----|------|-----|
| 1  | fred |  9  |   
| 2  | tom  |  8  |  
| 3  | kim  |  6  |   

animals

| id | name | animal |
|----|------|--------|
| a  | fred |  cat   |   
| b  | tom  |  frog  |  
| c  | kim  |  dog   | 

所以对于这个循环...

foreach ($pdo->query($sql) as $row) {
echo "$row['id']"; 
echo "$row['animal']"; 
}

...我得到的结果是:

| a  |  cat  |   
| b  |  frog |  
| c  |  dog  | 

但是我实际需要的结果是

| 1  |  cat  |   
| 2  |  frog |  
| 3  |  dog  | 

所以,我需要从连接的数据animals,但仍保留idperson

瞳孔

您需要从personnot获取id字段animals

获取单独的ID field

$sql = "SELECT  *, h.id as pid  FROM person h
LEFT JOIN animals o ON o.name = h.name";

PHP的变化:

foreach ($pdo->query($sql) as $row) {
  echo $row['pid']; 
  echo $row['animal']; 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用join连接sails中的两个表

如何使用JOIN从两个表中获取数据

如何连接来自两个不同数据库(ms.access和mysql)的三个表?

MYSQL合并两个表中的两列,仍然使用LEFT JOIN

如何使用PostgreSQL连接来自不同数据库的两个表?

JOIN 两个SELECT 语句结果来自两个不同的表

MySQL-如何使用(LEFT)JOIN通过一个表将两个表连接在一起?

Linq join - 在一个表中显示所有数据并补充来自另外两个表的数据

SQL Merge 连接来自两个不同数据库的两个表

使用JOIN更新MySQL中的两个表

如何多次获取特定的字段值。我的输出来自两个不同的表,通过INNER JOIN

连接来自两个表的数据

使用FK连接来自两个表的数据

使用left_join()连接两个数据帧

来自不同数据库的MySQL LEFT JOIN 2查询

如何在Simple OData Client中使用join从两个表中检索数据?

如何使用 SQL 从两个表中 INNER JOIN 条件数据

如何在MySQL中使用INNER JOIN从两个表中删除行?

使用POSIXct格式化两个不同的数据帧以进行left_join()-ing

如何连接来自两个不同PDO对象的表?

SQL LEFT JOIN两个表而不使用GROUP BY

SQL join 连接两个不同的值

如何连接来自两个不同数据帧的*具有给定条件*的行组合?

PHP在一个查询中显示来自四个表的数据(即:LEFT JOIN)

尝试在一个php函数中连接来自两个不同表的两个mysql查询时出现问题

SQL两个表中的两个表都具有多个WHERE条件的LEFT JOIN

使用 .Select().Join() 连接两个数据表

如何通过 Firestore 中的引用字段连接来自两个集合的数据?

如何使用 LEFT JOIN 连接多个 mySQL 表?