gpt4 book ai didi

php - 如何将一个 mySQL 表的值连接到另一个表的值?

转载 作者:可可西里 更新时间:2023-11-01 07:05:10 25 4
gpt4 key购买 nike

我的 mySQL 数据库中有两个表:

表“动物”:

|   animal   |    name     | 
|:-----------|------------:|
| cat | Tom |
| dog | |

表“订单”:

|     id     |   animal    | 
|:-----------|------------:|
| 1 | cat |
| 2 | dog |

首先,我从“订单”表中选择以下数据:

    <?php 
$pdo = Database::connect();
$sql = 'SELECT * FROM orders ORDER BY id ASC';
foreach ($pdo->query($sql) as $row) {

echo ('<td>a:'.$row['id'].'</td>');
echo ('<td>b:'.$row['animal'].'</td>');
echo ('<td>c:'.$row['animal'].'</td>');

}
Database::disconnect();
?>

现在我想检查在我的 mySQL 表“animal”中,animal 是否有一个名称。如果是,则在 b 位置打印 name。如果没有没有名字打印动物:

|      a:1     |     b:Tom     |      c:cat     | 
| a:2 | b:dog | c:dog |

感谢您的回答!我现在尝试使用 Jayo2k 的回答。我需要对我的问题做一些改动,我发现我犯了一个小错误。所以在这里我尽量描述我需要的东西:

表“动物”:

|   name     |   animal    | 
|:-----------|------------:|
| Tom | cat |
| Jerry | dog |
| Alfred | duck |
| Sam | |
| Donald | |

表“订单”:

|     id     |   animal    | 
|:-----------|------------:|
| 1 | cat |
| 2 | dog |
| 3 | duck |
| 4 | frog |
| 5 | pig |

使用来自 Jayo2k 的以下代码......

    <?php 
$pdo = Database::connect();
$sql = "SELECT * FROM animals, orders WHERE orders.animal = animals.animal";
foreach ($pdo->query($sql) as $row) {

echo '<tr> ';
echo('<td>a:'.$row['id'].' </td>');
echo('<td>a:'.$row['animal'].' </td>');
echo('<td>b:'.$row['name'].' </td>');
echo '</tr> ';

}
Database::disconnect();
?>

...我得到这个结果:

|      a:1     |     b:cat     |      c:Tom     | 
| a:2 | b:dog | c:Jerry |
| a:3 | b:duck | c:Alfred |

但我需要的是:

|      a:1     |     b:cat     |      c:Tom     | 
| a:2 | b:dog | c:Jerry |
| a:3 | b:duck | c:Alfred |
| a:4 | b:frog | c:frog |
| a:5 | b:pig | c:pig |

最佳答案

您可以使用 LEFT JOIN ,并使用 IF检查值不为空的条件,以及 IFNULL ,这将使列中的空值变为空白。

SELECT O.id, IF(IFNULL(A.name, '') = '', A.animal, A.name) name,  A.animal
FROM orders O
LEFT JOIN animals A
ON O.animal = A.animal
ORDER BY O.id DESC

关于php - 如何将一个 mySQL 表的值连接到另一个表的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com