2016-11-18 19 views
5

Używam wordpressa i mam 4 niestandardowe tabele. Każdy z nich wygląda następująco:znajdź unikalne minimalne i maksymalne daty z 4 tabel - php

Table1  Table2  Table3  Table4 

date   date   date   date 
2016-07-21 2016-11-13 2016-10-19 2016-11-18 
2016-09-16 2016-10-27 2016-11-13 2016-10-25 
2016-09-09 2016-09-30 2016-07-15 2016-09-28 
2016-11-11 2016-08-19 2016-11-17 2016-10-24 

Muszę znaleźć minimalną datę tych 4 tabel i maksymalną datę tych 4 tabel. Próbowałem to zrobić za pomocą poniższego kodu:

$minViews = $wpdb->get_results(" 
SELECT MIN(date) as min_date FROM Table1 UNION 
SELECT MIN(date) as min_date FROM Table2 UNION 
SELECT MIN(date) as min_date FROM Table3 UNION 
SELECT MIN(date) as min_date FROM Table4"); 

$maxViews = $wpdb->get_results(" 
SELECT MAX(date) as max_date FROM Table1 UNION 
SELECT MAX(date) as max_date FROM Table2 UNION 
SELECT MAX(date) as max_date FROM Table3 UNION 
SELECT MAX(date) as max_date FROM Table4"); 

Ale przede zapytania zwraca minimalną każdej tabeli i maksymalną datę. Ale muszę znaleźć minimalną datę wszystkie 4 tabele i maksymalną datę wszystkie 4 tabele.

+0

Nie wiem, dlaczego masz 4 stoły, ale w każdym razie ... UNION je pierwszy i znaleźć min i max tego podzapytania . (Nie jestem pewien, co masz na myśli przez "wyjątkowy" w tym kontekście) – Strawberry

Odpowiedz

8

Zawsze można użyć podzapytania w twojej FROM:

SELECT MIN(date), MAX(date) FROM 
(
    SELECT date FROM Table1 
    UNION SELECT date FROM Table2 
    UNION SELECT date FROM Table3 
    UNION SELECT date FROM Table4 
) AS sq; 
+0

Świetna odpowiedź! Dzięki. Ale co, jeśli moja nazwa kolumny 'date' jest różna w 2 tabelach. Na przykład table1 - "date", table2 - 'ins_date', table3 -' date', table4 - 'ins_date' @Daniel Heinrich – aidadev

+0

Nie ma znaczenia. Pierwsza tabela definiuje nazwę kolumny - w tym przypadku "Tabela 1" definiuje nazwę wynikowej kolumny jako "date". –

+0

Też tak myślałem, ale w rzeczywistości ma to znaczenie, ponieważ teraz zwraca mi 'tablicę (0) {}'. Jakieś pomysły? @ Daniel Heinrich – aidadev