我可以在单个查询中合并2个不同的查询(返回单个记录),返回单个记录吗?

时间:2017-05-23 13:16:48

标签: mysql sql database rdbms

我对数据库并不是这样,我有以下疑问。我正在使用MySql。

我有两个查询都返回一条记录。

这样的事情:

QUERY 1:

select id_1, field_1.1, field_1.2,............., field_1.n where id=1;

返回包含以下内容的单个记录:

field_1.1, field_1.2,...............,field_1.n

QUERY 2:

select username, password from settings where id=1;

返回包含以下内容的单个记录:

username, password

我想创建一个单独的查询,将查询的结果合并到一个记录中,如:

field_1.1, field_1.2,...............,field_1.n, username, password

有可能以某种方式吗?

3 个答案:

答案 0 :(得分:0)

是的,这很容易。只需一条记录,您就可以使用交叉联接:

select q1.field_1_1, q1.field_1_2, ... q1.field_1_n, q2.username, q2.password
from (query1) q1
cross join (query2) q2;

答案 1 :(得分:0)

由于它们只返回一条记录和两个不同的表,您可以使用:

select id_1, field_1.1, field_1.2,............., field_1.n,username,  
password from table1,table2 where table1.id=1 and table2.id=1;

答案 2 :(得分:0)

如果你们之间没有关系,你可以像这样使用。 如果您没有列,请确保在两个查询中使用相同数据类型的列数相同,您可以将其设为空白,如“”

select max(id_1),max(field_1.1)......,max(username),max(password) from 
(
select id_1, field_1.1, field_1.2,............., field_1.n,"" as username,"" as password 
 from Tabelname where id=1;
union all
select "","","","",....,"",username, password from settings where id=1
) group by username