Mysql 选择具有虚拟值的虚拟列,然后在SQL中的虚拟列中搜索?

Mysql 选择具有虚拟值的虚拟列,然后在SQL中的虚拟列中搜索?,mysql,Mysql,我有两张桌子需要合并 Table1 col1 col2 col3 ------------------ 1 A 20 2 B 10 3 C 30 4 D 40 Table2 col1 col2 ----------- 1 A 2 B 3 C 4 D 我得把两张桌子合二为一。由于表2没有col3,我在查询中添加了dummy列 我

我有两张桌子需要合并

Table1
col1   col2   col3 
------------------
 1      A      20 
 2      B      10
 3      C      30
 4      D      40

Table2
col1   col2
-----------
 1      A  
 2      B  
 3      C  
 4      D  
我得把两张桌子合二为一。由于表2没有col3,我在查询中添加了dummy列

我需要对col3

我试过了,但它抛出了未知列异常

(SELECT col1, col2, col3 from table1 where col3 = "10")
 UNION
(SELECT col1, col2, "10" as col3 from table2 where col3 = "10")

如有任何帮助,将不胜感激。

您可以在之后直接查询联合数据:

SELECT col1, col2, col3 from
(
 (SELECT col1, col2, col3 from table1)
  UNION
 (SELECT col1, col2, "10" as col3 from table2)
) as b 
where col3 = "10"

表2中不需要
WHERE
子句:

SELECT col1, col2, col3 FROM Table1 WHERE col3 = '10'
UNION 
SELECT col1, col2, '10' FROM Table2
请参阅。
结果:


如果表2中没有这样的列,您如何在表2中搜索col3?@juergend,联合操作后,我们可以搜索。我得到了我的解决方案,我只期待这一个。谢谢
Where
子句是必需的,因为它可以是不特定于10的任何字段值。@不,Where子句仅适用于表1。
> col1 | col2 | col3
> ---: | :--- | :---
>    2 | B    | 10  
>    1 | A    | 10  
>    3 | C    | 10  
>    4 | D    | 10