【发布时间】:2017-08-31 14:42:03
【问题描述】:
我有这个单一的查询。
$sql = "SELECT * FROM `my_table` WHERE type!='' AND (page_option='0' OR page_option='1') ORDER BY type ASC";
返回的列scenario 的前三个结果是a1,d3,e1。
现在,当我对其他相同的表执行 UNION ALL 时:
$sql = "SELECT * FROM `my_table`
WHERE type!='' AND (page_option='0' OR page_option='1')
UNION ALL
SELECT * FROM `my_table_2`
WHERE type!='' AND (page_option='0' OR page_option='1')
UNION ALL
SELECT * FROM `my_table_3`
WHERE type!='' AND (page_option='0' OR page_option='1')
ORDER BY type ASC";
我遍历结果,my_table 的前三列是e1,e1,e1。
每个表都有一个名为type 的列,用于标识结果来自哪个表。因此,对于联合查询结果,我添加了一个条件以仅显示来自 my_table 的场景
if($type=="my_table") {
echo $scenario;
}
场景应该与单个查询相同,但它们不是。
我该如何解决?
【问题讨论】:
-
您能否分享一些示例数据以及预期输出和实际输出?
-
我做了,单个查询中的前三个结果应该与联合查询中的前三个结果相同,但它们不是。
-
您可以将每个表的别名设为
SELECT t1.* FROM my_table as t1以使数据相同。 -
我无法理解您的问题陈述。通过一些示例数据和输出向我们展示这里发生了什么。
标签: mysql