gpt4 book ai didi

php - PDO 使用 where 子句选择多个表

转载 作者:行者123 更新时间:2023-11-29 15:11:50 25 4
gpt4 key购买 nike

我有 4 个相同的表,它们具有相同的行名称和不同的值。我已从另一个页面发送 $_GET['urun_barkod'] 代码,因此我尝试在第二页上显示匹配的行以及详细的行信息。

$barko=$_GET['barkod'];
$urunsor=$db->prepare("SELECT * FROM kanyon UNION ALL SELECT * FROM zorlu UNION ALL SELECT * FROM
tesvikiye UNION ALL SELECT * FROM citys where urun_barkod=:barkod");
$urunsor->execute(array(
'barkod' => $barko
));
$uruncek=$urunsor->fetch(PDO::FETCH_ASSOC);

但我无法正确得到结果。只是想在我的第二页上显示匹配的 barkod 行及其详细信息。

我做错了什么?

最佳答案

您的问题是您的 where 子句仅适用于最后一个 Select

所以你需要封装联合,然后执行你的 where 子句

喜欢

SELECT 
*
FROM
(SELECT * FROM kanyon UNION ALL SELECT * FROM zorlu UNION ALL SELECT * FROM
tesvikiye UNION ALL SELECT * FROM citys) a
where urun_barkod=1

问题是您从所有表中收集所有数据并将它们合并,最后删除所有不必要的行,这根本没有意义,因为它需要时间和资源。

所以做得更好

SELECT * FROM kanyon  where urun_barkod=1
UNION ALL SELECT * FROM zorlu where urun_barkod=1
UNION ALL SELECT * FROM tesvikiye where urun_barkod=1
UNION ALL SELECT * FROM citys where urun_barkod=1;

它只联合实际想要的行。

在我看来,我还会在选择中添加一列来标识表,但那是我。

关于php - PDO 使用 where 子句选择多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011682/

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