Mysql 如何将3个表中的结果合并到一个表中?
我有三张桌子:A、B和CMysql 如何将3个表中的结果合并到一个表中?,mysql,sql,Mysql,Sql,我有三张桌子:A、B和C 它们都有一个共同的列名“name”。 例如,我需要检查名称7是否在其中任何一个中 A name 5 name 6 name 7 B name 8 name 9 name 10 C name 6 name 7 name 8 name 9 将产生: name 7 name 7 因为表A有7个,C也有7个,所以它把它们加起来。 什么样的SQL可以实现这种组合?试试以下方法: Select * from A,B,C Where A.name = 7 or B.na
它们都有一个共同的列名“name”。
例如,我需要检查名称7是否在其中任何一个中
A
name 5
name 6
name 7
B
name 8
name 9
name 10
C
name 6
name 7
name 8
name 9
将产生:
name 7
name 7
因为表A有7个,C也有7个,所以它把它们加起来。什么样的SQL可以实现这种组合?试试以下方法:
Select *
from A,B,C
Where A.name = 7 or B.name = 7 or C.name = 7;
select name, value from
A inner join B on A.name = B.Name
A inner join C on A.name = C.name
where A.value = 7 or B.value = 7 or C.value = 7;
试试这个:
select name, value from
A inner join B on A.name = B.Name
A inner join C on A.name = C.name
where A.value = 7 or B.value = 7 or C.value = 7;
您可以使用
联合
合并表:
select *
from (
select name
, value
from A
union all
select name
, value
from B
union all
select name
, value
from C
) SubQueryAlias
where value = 8
您可以使用
联合
合并表:
select *
from (
select name
, value
from A
union all
select name
, value
from B
union all
select name
, value
from C
) SubQueryAlias
where value = 8
只需使用union all来叠加A、B和C的结果:
select name,
value
from A
where value = 7
union all
select name,
value
from B
where value = 7
union all
select name,
value
from C
where value = 7
只需使用union all来叠加A、B和C的结果:
select name,
value
from A
where value = 7
union all
select name,
value
from B
where value = 7
union all
select name,
value
from C
where value = 7
示例输出
NAME_A | NAME_B | NAME_C
7 | NULL | 7
示例输出
NAME_A | NAME_B | NAME_C
7 | NULL | 7
我们也可以试试-
SELECT *
FROM A, B, C
WHERE A.name = B.name OR B.name = C.name OR C.name = A.name
我们也可以试试-
SELECT *
FROM A, B, C
WHERE A.name = B.name OR B.name = C.name OR C.name = A.name
不清楚。
7
是一个参数,您想知道它是否包含在这些表中?或者你还需要知道它是在哪个表中找到的吗?还不清楚。7
是一个参数,您想知道它是否包含在这些表中?或者您还需要知道它是在哪些表中找到的?