php - PDO 使用 where 子句选择多个表
问题描述
我有 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;
仅联合实际想要的行。
在我看来,我还会在选择中添加一列来识别表格,但我。
推荐阅读
- python - 如何将多个数字转换为单个字母以从书中创建短语
- android - 如何在 Interactor / UseCase 中获取 CoroutineScope
- mongodb - Mongoose 与加法字段的多对多关系
- javascript - Angular 6:如何使用 Angular 6 在单击按钮时动态添加和删除一行 2 个文本框
- jquery - 为什么加载散景图时会出现 jquery-ui 错误?
- json - 自定义 UnmarshalJSON:要映射的数组对象
- android - 使用 CastPlayer 更改字幕
- string - 如何在指定字符后从多个文件名中删除所有字符 - Powershell
- c# - 如何在c#中用类名字符串声明一个变量
- java - 通过 XPath 表达式提取多个属性节点值的值