使用union查询两个表

时间:2012-12-10 10:03:08

标签: mysql datatable

我有一个非常简单的mysql查询,只要这个“数据”在一行中包含一个精确的“id”,我想从两个表table1和table2中获取一些“数据”,所以我运行了一个准备好的请求:

'select data from (
    select data from table1 union select data from table2) 
 where id = :id'

但它似乎不起作用(顺便说一句,我只试过'select data from table1, table2 where id = :id ') 但它不起作用。有人可以帮忙,我不知道我在哪里错过了什么?

4 个答案:

答案 0 :(得分:2)

 select * from table1  where id = :id
 union all
 select * from table2  where id = :id

答案 1 :(得分:1)

在MySQL中,联盟是复杂且无根据的,我宁愿依赖JOIN来执行我的语句。

答案 2 :(得分:0)

我认为你要找的是一个加入。有多种类型的联接,其中最常见的是LEFT JOININNER JOIN

LEFT JOIN返回行,即使匹配的数据不存在,也为连接的数据返回null。

INNER JOIN要求匹配的数据存在,并且如果匹配的数据不存在则不返回任何内容。

使用INNER JOIN的示例:

SELECT
   table1.*,
   table2.*
FROM
   table1
   INNER JOIN table2 ON ( table1.id = table2.id )
WHERE
   id = :id

答案 3 :(得分:0)

从table1中选择table1.data,table2.data,其中table1.id = table2.id