Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将3个表中的结果合并到一个表中?_Mysql_Sql - Fatal编程技术网

Mysql 如何将3个表中的结果合并到一个表中?

Mysql 如何将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

我有三张桌子: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.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
是一个参数,您想知道它是否包含在这些表中?或者您还需要知道它是在哪些表中找到的?