任何人都可以告诉我如何从两个表中选择数据,而不必使用连接?
像这样的东西:
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)
不过,这是一个内部联接.
在查看您的查询时:在这种特殊情况下,tbl_transactions
和之间没有关系tbl_transactions_bk_2012
(即在person_key上加入这些关系是没有意义的,因为两个表之间没有关系(比如说tbl_transactions和人员相关)).
然后,你应该使用这种UNION
方法.想加入使用无论对第二第一个查询JOIN
或者FROM xx, yy WHERE xx.id=yy.id
是毫无意义的,不会给你你想要的结果.
顺便说一句,在将来,将您当前的查询/尝试放在您的帖子中 - 正如您所看到的那样,它将阻止您获得不适合您的问题的答案(正如我的第一次尝试).
归档时间: |
|
查看次数: |
74871 次 |
最近记录: |