MySql加入2个没有公共字段的查询

时间:2014-01-05 05:33:19

标签: mysql

我有2个表的2个查询

select something,something2 from database.table1 where id=1

select something from database.table2 where id=2

如何加入这两个查询的结果?

我需要这个,因为我想在1个mysqldatareader中得到结果。

编辑:2个查询的列数不相等。对不起

提前致谢。

4 个答案:

答案 0 :(得分:-1)

如果列数相同且包含相同的数据类型,则可以使用“UNION”合并它们。

select something from database.table1 where id=1
UNION 
select something from database.table2 where id=2

http://dev.mysql.com/doc/refman/5.0/en/union.html

答案 1 :(得分:-1)

连接表的方法有很多种。您没有详细说明您期望的结果集。所以我的猜测是笛卡尔积:

SELECT t1.something, t1.something2, t2.something
    FROM table1 t1, table2 t2
    WHERE t1.id=1 AND t2.id=2;

这会选择一个这样的元组:

("something from t1", "something2 from t1", "something from t2")

答案 2 :(得分:-2)

如果您有不同数量的列,则为具有较少列的表(例如

)将额外列添加为null
Select Col1, Col2, Col3, Col4, Col5 from Table1
Union
Select Col1, Col2, Col3, Null as Col4, Null as Col5 from Table2

Reference

答案 3 :(得分:-2)

你的桌子没有相等的字段,所以你不能使用UNION 这可能对你无能为力:

 (select clm1 from database.table1 where id=1)
    UNION
    (select clm2 from database.table2 where id=2);

但也许这是你的答案:

SELECT t1.*,t2.* from table1 as t1,table2 as t2 where t1.id=1 AND t2.id=1;