gpt4 book ai didi

php - 从 mysql JOIN 获取所有结果,即使没有连接匹配

转载 作者:行者123 更新时间:2023-11-28 23:33:04 25 4
gpt4 key购买 nike

我在一个表和它本身之间做一个 JOIN 操作。表架构类似于:

| id | name | parent |
| 0 | .... | ... |
| 1 | .... | ... |
| 2 | .... | ... |

查询看起来像:

$qMarks = str_repeat('?,', count($arr) - 1) . '?';
$stmt = $db->prepare("SELECT t1.id AS t1id, t1.name AS t1name, t2.name AS t2name
FROM cats t1
JOIN cats t2 ON t1.parent = t2.id
WHERE t1.name IN ($qMarks)");
$stmt->execute($arr);
$result = $stmt->fetchAll();

因此,我传递了一个名称数组 $arr,并且我返回了与参数数组中的一项匹配的名称的行。只要 parent 的某处也有匹配的 id 就可以正常工作。

但是,有时 parent 的值将为空白(空单元格)。我仍然想获得这些结果,只要满足 t1.name IN ($qMarks) 条件即可。

即使表中的 t1.parent 值为空,我如何返回值?

最佳答案

使用 left join .

$stmt = $db->prepare("SELECT t1.id AS t1id, t1.name AS t1name, t2.name AS t2name 
FROM cats t1
LEFT JOIN cats t2 ON t1.parent = t2.id
WHERE t1.name IN ($qMarks)");

关于php - 从 mysql JOIN 获取所有结果,即使没有连接匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757960/

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