【发布时间】:2013-07-21 13:06:17
【问题描述】:
我有 2 张包含大量相同数据的表格(适用于制造 2 种语言的名片)。
我JOIN(据我所知模拟完全外连接,做左联合右连接)它们以并排显示数据以便于复制。
table a has data in language1
table b has data in language2
不是每个人都有语言 1 和语言 2 数据,所以只有语言 1 或只有语言 2。
我做了这样的查询:
SELECT
<long list of selected rows from table a and table b as afiled,bfield>
FROM tablelanguage1 a
LEFT JOIN tablelanguage2 b
ON a.email=b.email
UNION
SELECT<long list of selected rows from table a and table b as afiled,bfield>
FROM tablelanguage1 a
RIGHT JOIN tablelanguage2 b
ON b.email = a.email
ORDER BY adatetime DESC, bdatetime DESC
这显示了我需要的所有内容,但我在排序时遇到了麻烦:它显示了除language2-only entries correctly 之外的所有内容。 Language2-only(table b) 条目总是最后的,即使日期晚于某些 language1+language2 或 language1-only 条目。
关于如何在这种情况下正确编码ORDER BY 有什么建议吗?非常感谢!
【问题讨论】:
-
您使用的是哪个 RDBMS?为什么要模拟
FULL JOIN而不是使用FULL JOIN? -
使用 libmysql - 5.5.31。模拟因为它在完全连接时给了我“无法解析查询”(以及 yeeeeeah,我在 sql 东西中很菜鸟)