Mysql从两个表中选择

Jet*_*oox 13 mysql sql

任何人都可以告诉我如何从两个表中选择数据,而不必使用连接?

像这样的东西:

SELECT t1.*, 
       t2.*
  FROM table1 t1, 
       table2 t2
Run Code Online (Sandbox Code Playgroud)

澄清

我有这两个具有相同字段的表.IE:table1包含2011年的数据并table2包含2012 年的数据.我希望得到所有数据.

进一步澄清:

所需的结果集可以通过以下方式生成:

(SELECT tr.full_name,tr.headlines,tr.content,tr.stamp,tr.person_key 
 FROM tbl_transactions tr
 JOIN persons p ON p.person_key = tr.person_key 
 JOIN teams t ON (pp.membership_id = t.id and pp.membership_type = 'teams') 
 WHERE t.team_key = '') 
UNION 
(SELECT tr.full_name,tr.headlines,tr.content,tr.stamp,tr.person_key 
 FROM tbl_transactions_bk_2012 tr 
 JOIN persons p ON p.person_key = tr.person_key 
 JOIN teams t ON (pp.membership_id = t.id and pp.membership_type = 'teams') 
 WHERE t.team_key = '')
Run Code Online (Sandbox Code Playgroud)

OP希望看看是否有其他方法可以加快速度("我尝试UNION在这些查询之间使用.但查询速度需要0.1887秒.这有点慢.")

(@Jetoox:如果这不是你的意图,请编辑你的问题并澄清).

mat*_*fee 25

只需将连接条件放在WHERE子句中:

SELECT t1.*, t2.*
FROM table1 t1, table2 t2
WHERE t1.id = t2.t1_id
Run Code Online (Sandbox Code Playgroud)

不过,这是一个内部联接.

UPDATE

在查看您的查询时:在这种特殊情况下,tbl_transactions和之间没有关系tbl_transactions_bk_2012(即在person_key上加入这些关系是没有意义的,因为两个表之间没有关系(比如说tbl_transactions和人员相关)).

然后,你应该使用这种UNION方法.想加入使用无论对第二第一个查询JOIN或者FROM xx, yy WHERE xx.id=yy.id是毫无意义的,不会给你你想要的结果.

顺便说一句,在将来,将您当前的查询/尝试放在您的帖子中 - 正如您所看到的那样,它将阻止您获得不适合您的问题的答案(正如我的第一次尝试).


Ign*_*ams 11

你想要的UNION.