2016-06-27 11 views
0

endDateまたはstartDateのいずれかが範囲外である複数のテーブルを選択しようとしています。日付範囲の間にテーブルの結合を選択する

SELECT * 
FROM excel.construction 
GROUP BY startDate, 
     endDate 
UNION ALL 

SELECT * 
FROM excel.misc 
GROUP BY startDate, 
     endDate 
UNION ALL 

SELECT * 
FROM excel.spawar 
GROUP BY startDate, 
     endDate 
WHERE construction.startDate BETWEEN '2012-01-01' AND '2012-01-10' 
    OR construction.endDate BETWEEN '2012-01-01' AND '2012-01-10' 
    OR misc.startDate BETWEEN '2012-01-01' AND '2012-01-10' 
    OR misc.endDate BETWEEN '2012-01-01' AND '2012-01-10'; 

なぜこの方法ではうまくいかないのですか?

+0

に関連しなければならない場合、列

SELECT * FROM excel.construction SELECT * FROM excel.misc SELECT * FROM excel.spawar 

の同じ数と種類を持っている必要があります私たちのためにあなたのデータベースの構造に関するいくつかの背景を助けてください。 –

答えて

0

いくつ

選択し、この3条件はあなたが与える必要があり、適切なクエリ

SELECT * 
    FROM excel.construction 
    where construction.startDate BETWEEN '2012-01-01' AND '2012-01-10' 
    OR construction.endDate BETWEEN '2012-01-01' AND '2012-01-10' 
    group by startDate,endDate 
UNION ALL 
select * 
    FROM excel.misc 
    where misc.startDate BETWEEN '2012-01-01' AND '2012-01-10' OR 
     misc.endDate BETWEEN '2012-01-01' AND '2012-01-10';m  
    group by startDate, endDate 
UNION ALL 
select * 
    from excel.spawar 
group by startDate, endDate 
関連する問題