Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 从两个具有相同id的表中选择所有行_Mysql_Sql_Join_Select_Union - Fatal编程技术网

Mysql 从两个具有相同id的表中选择所有行

Mysql 从两个具有相同id的表中选择所有行,mysql,sql,join,select,union,Mysql,Sql,Join,Select,Union,我的数据库中有两个表如下所示: TABLE1 user_id value1 value2 TABLE2 user_id value3 value4 我想进行一个查询,以获取表1和表2中所有用户_id=1的行 我已经做了: SELECT TABLE1.user_id,TABLE1,value1, TABLE1.value2, TABLE2.value3, TABLE2.value4 FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.user_id =

我的数据库中有两个表如下所示:

TABLE1 
user_id 
value1
value2

TABLE2 
user_id
value3
value4 
我想进行一个查询,以获取表1和表2中所有用户_id=1的行

我已经做了:

SELECT TABLE1.user_id,TABLE1,value1, TABLE1.value2, TABLE2.value3, TABLE2.value4
 FROM TABLE1 
INNER JOIN TABLE2 
ON TABLE1.user_id = TABLE2.user_id 
WHERE TABLE.user_id = 1
但是我得到了一行中的所有值,我想从这两个表中得到所有不同的行,其中user_id=1


谢谢你的帮助

使用
union all

select 't1' which, user_id, value1, value2 from table1 where user_id = 1
union all
select 't2', user_id, value3, value4 from table2 where user_id = 1
您没有准确指定要获取的结果集。这将提供一个由4列组成的数据集,其中第一列包含找到用户的表的名称。第3列和第4列包含
value1
value2
(如果行来自
table1
),或者
value3
value4
(如果行来自
table2

仅当
value1
value3
(分别为
value2
value4
)具有相同的数据类型(和长度)时,此功能才起作用。如果不是这样,那么最好在结果集中有单独的列:

select 't1' which, user_id, value1, value2, null value3, null valu4
from table1 where user_id = 1
union all
select 't2', user_id, null, null, value3, value4 
from table2 
where user_id = 1

使用“全部联合”:

select 't1' which, user_id, value1, value2 from table1 where user_id = 1
union all
select 't2', user_id, value3, value4 from table2 where user_id = 1
您没有准确指定要获取的结果集。这将提供一个由4列组成的数据集,其中第一列包含找到用户的表的名称。第3列和第4列包含
value1
value2
(如果行来自
table1
),或者
value3
value4
(如果行来自
table2

仅当
value1
value3
(分别为
value2
value4
)具有相同的数据类型(和长度)时,此功能才起作用。如果不是这样,那么最好在结果集中有单独的列:

select 't1' which, user_id, value1, value2, null value3, null valu4
from table1 where user_id = 1
union all
select 't2', user_id, null, null, value3, value4 
from table2 
where user_id = 1

执行全部联合而不是联接。请提供示例数据和所需结果。执行全部联合而不是联接。请提供示例数据和所需结果。