从多个MySQL表中选择

时间:2009-01-13 11:38:06

标签: mysql select

我有一些表有相似字段但不完全相同的表。

他们拥有的相同字段是描述(文本字段)和修改(unixtime)

我想根据unixtime从这些表中选择最后修改的项目。我不能使用UNION,因为表格不一样,多个表格选择超时。

我一直试图寻找这个,但没有运气,无论是人们使用JOINS还是选择A. ,B。来自表A,表B

3 个答案:

答案 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