我有一些表有相似字段但不完全相同的表。
他们拥有的相同字段是描述(文本字段)和修改(unixtime)
我想根据unixtime从这些表中选择最后修改的项目。我不能使用UNION,因为表格不一样,多个表格选择超时。
我一直试图寻找这个,但没有运气,无论是人们使用JOINS还是选择A. ,B。来自表A,表B
答案 0 :(得分:4)
它们有多么不同? 也许你可以得到常见的领域:
select t1.name1 as name from table1
union
select t2.name2 as name from table2
答案 1 :(得分:0)
试试这个:
SELECT
IF (A.modified > B.modified, A.modified, B.modified) AS modified,
IF (A.modified > B.modified, A.description, B.description) AS description,
FROM
(SELECT description, modified FROM A ORDER BY modified DESC LIMIT 1) AS A,
(SELECT description, modified FROM B ORDER BY modified DESC LIMIT 1) AS B
LIMIT 1
但是,它与完成两个查询(只是更复杂)几乎相同,所以我不推荐它。
答案 2 :(得分:0)
如果您选择timesou,请尝试在'modified'上添加desc索引,并在select上使用limit来仅返回一行(最后一行)。
然后你可以:
SELECT
A,B,C,D, desc, modified
FROM
TABLEA
UNION ALL
SELECT
CAST(E as <A type>), CAST(F AS <B type>) ..., desc, modified
FROM
TABLE B