[a-z]*
所以我有这个查询,这是我的php:
aa
现在看到SELECT column1, column2, column3, column4, column5 FROM table1 WHERE column2 = :value
UNION SELECT column1, column2, column3, column4, column5 FROM table2 WHERE column2 = :value
我想在这里展示如果是来自table1或table2,我该怎么做?
答案 0 :(得分:0)
同样,在我的经历中,工会表现糟糕,所以我建议你只运行两个查询。
您可以使用下面的查询并根据第一列值进行过滤。
alarm@alarm:~/aarch64 $ ./stuff
Sphere First
答案 1 :(得分:0)
@ bassxzero的答案将起作用,如果你真的在寻找Table1和Table2的所有结果,无论表中的所有列(1,2,3 ...)是否与添加表相同列中的值使它们成为唯一的。虽然在这种情况下你应该使用UNION ALL而不是UNION,因为这就是你正在做的事情。
如果Table1和Table2之间的列(1,2,3 ......)的值可能完全重复,但您只想将它们显示为1行,那么您可以使用如下模式:
SELECT
CASE
WHEN SUM(FromTable) > 2 THEN 'Both Tables'
WHEN SUM(FromTable) = 2 THEN 'Table2'
ELSE 'Table1'
END as FromTable
,column1, column2, ...
FROM
(
SELECT 1 as FromTable, column1, column2, ...
FROM
Table1
WHERE
column2 = :value
UNION ALL
SELECT 2, column1, column2, ...
FROM
Table2
WHERE
column2 = :value
) t
GROUP BY
column1, column2, ....