定义哪个类型选择union mysql php

时间:2016-11-11 19:10:21

标签: php mysql sql

[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,我该怎么做?

2 个答案:

答案 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, ....