2016-11-18 15 views
5

私はwordpressを使用していて、4つのカスタムテーブルを持っています。これらはそれぞれ次のようになります。4つのテーブルから一意の最小値と最大値を見つける - 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 

これらの4つのテーブルの最小日付とこれらの4つのテーブルの最大日付を見つける必要があります。私は以下のコードでそれを試みました:

$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"); 

上記のクエリは、各テーブルの最小値と最大値を返します。しかし、私はのすべての4テーブルと最大日付のすべての4テーブルの最低の日付を見つける必要があります。

+0

私はあなたが4つのテーブルを持っている理由を知っているが、とにかく... UNION最初に、そのサブクエリの最小値と最大値を見つけることができません。 。 (私はこの文脈であなたが「ユニーク」で何を意味するか分かりません) – Strawberry

答えて

8

あなたは常に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

すばらしい答え!ありがとう。しかし、私の 'date'カラム名が2つのテーブルで異なる場合はどうでしょうか?たとえば、table1 - 'date'、table2 - ' ins_date'、table3 - 'date'、table4 - ' ins_date' @Daniel Heinrich – aidadev

+0

は関係ありません。最初のテーブルはカラム名を定義します。この場合、 'Table1'は' date'という結果カラムの名前を定義します。 –

+0

私もそのように思っていましたが、実際には 'array(0){}'を返すので問題になります。何か案は? @ダニエル・ハインリッヒ – aidadev

関連する問題