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
执行全部联合而不是联接。请提供示例数据和所需结果。执行全部联合而不是联接。请提供示例数据和所需结果。