Выбор из нескольких таблиц MySQL - PullRequest
1 голос
/ 13 января 2009

У меня есть несколько таблиц, которые имеют похожие поля, но не совсем одинаковые.

Те же самые поля, которые они имеют, являются описанием (текстовое поле) и изменены (unixtime)

Я бы хотел выбрать последние измененные элементы из этих таблиц на основе unixtime. Я не могу использовать UNION, так как таблицы не совпадают и время выбора нескольких таблиц истекло.

Я пытался искать это, но не повезло, либо люди используют JOINS, либо ВЫБРАТЬ A. , B. ОТ таблицы A, таблицы B

Ответы [ 3 ]

4 голосов
/ 13 января 2009

Насколько они отличаются? Может быть, вы можете получить общие поля:

select t1.name1 as name from table1
union
select t2.name2 as name from table2
0 голосов
/ 13 января 2009

Попытайтесь добавить индекс desc в значение «updated», если вы выбрали время, и используйте предельное значение для выбора, чтобы вернуть только одну (последнюю) строку.

Тогда вы можете:

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  
0 голосов
/ 13 января 2009

Попробуйте это:

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

Однако, это почти то же самое, что просто выполнить два запроса (только более сложные), поэтому я бы не рекомендовал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...