Использование нескольких UNION - PullRequest
0 голосов
/ 03 июня 2019

У меня следующий запрос, в котором я хочу выбрать один результат из 4 таблиц на основе

datum DESC.Это работает, когда я использую только одно предложение WHERE, и это работает.Работает следующий запрос:

(SELECT 'naruceno' ai, dimnjacar, datum_unosa as datum from naruceno 
    WHERE dimnjacar = 1 UNION SELECT 'odradeno'  ai, dimnjacar, datum from odradeno
    WHERE dimnjacar = 1 UNION SELECT 'odbijanja' ai, dimnjacar, datum from odbijanja
    WHERE dimnjacar = 1 UNION SELECT 'obavijesti'  ai, dimnjacar, datum from obavijesti
    WHERE dimnjacar = 1 ORDER BY `datum`  DESC LIMIT 1)

Я пытаюсь сделать что-то подобное с другим предложением WHERE:

(SELECT 'naruceno' ai, dimnjacar, datum_unosa as datum from naruceno 
    WHERE dimnjacar = 1 UNION SELECT 'odradeno'  ai, dimnjacar, datum from odradeno
    WHERE dimnjacar = 1 UNION SELECT 'odbijanja' ai, dimnjacar, datum from odbijanja
    WHERE dimnjacar = 1 UNION SELECT 'obavijesti'  ai, dimnjacar, datum from obavijesti
    WHERE dimnjacar = 1 ORDER BY `datum`  DESC LIMIT 1) UNION
    (SELECT 'naruceno' ai, dimnjacar, datum_unosa as datum from naruceno 
    WHERE dimnjacar = 2 UNION SELECT 'odradeno'  ai, dimnjacar, datum from odradeno
    WHERE dimnjacar = 2 UNION SELECT 'odbijanja' ai, dimnjacar, datum from odbijanja
    WHERE dimnjacar = 2 UNION SELECT 'obavijesti'  ai, dimnjacar, datum from obavijesti
    WHERE dimnjacar = 2 ORDER BY `datum`  DESC LIMIT 1)

Но это не работает.Где я не прав?

1 Ответ

1 голос
/ 03 июня 2019

может быть как результатом запроса, так и результатом, поэтому попробуйте использовать UNION ALL

select * from 
(    SELECT 'naruceno' ai, dimnjacar, datum_unosa as datum 
    from naruceno 
    WHERE dimnjacar = 1 UNION 
    SELECT 'odradeno', dimnjacar, datum 
    from odradeno 
    WHERE dimnjacar = 1 UNION 
    SELECT 'odbijanja', dimnjacar, datum 
    from odbijanja
    WHERE dimnjacar = 1 UNION 
    SELECT 'obavijesti', dimnjacar, datum 
    from obavijesti
    WHERE dimnjacar = 1 
    ORDER BY `datum`  DESC LIMIT 1)  t1
UNION ALL  
select * from 
(
    SELECT 'naruceno' ai, dimnjacar, datum_unosa as datum 
    from naruceno 
    WHERE dimnjacar = 2 UNION 
    SELECT 'odradeno'  ai, dimnjacar, datum 
    from odradeno
    WHERE dimnjacar = 2 UNION 
    SELECT 'odbijanja' ai, dimnjacar, datum 
    from odbijanja
    WHERE dimnjacar = 2 UNION 
    SELECT 'obavijesti'  ai, dimnjacar, datum 
    from obavijesti
    WHERE dimnjacar = 2 
    ORDER BY `datum`  DESC LIMIT 1)   t2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...