0

私はここを見回しましたが、これに対する答えが見つかりません。探すべき正しい用語がわからないのかもしれません。

私は約15のテーブルを持っており、すべて同じ列と同様のデータを持っています。それらの唯一の違いは、作成日です。

私はこれらのいくつかを次のように検索したいと思います:

SELECT * 
FROM table_2010, table_2011 
WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01'
ORDER BY date_created

しかし、すべてのデータを2つのテーブルとして扱い、あいまいなフィールドを作成するため、これが機能するとは思われません:P

助言がありますか?これは組合の仕事か何かですか?

4

6 に答える 6

1

テーブルオブジェクトを作成し、これを試してください

SELECT * 
FROM table_2010 AS t1, table_2011 AS t2
WHERE ( t1.date_created BETWEEN '2010-04-01' AND '2011-04-01' AND t2.date_created BETWEEN '2010-04-01' AND '2011-04-01')
ORDER BY t1.date_created,t2.date_created
于 2012-05-28T14:49:10.573 に答える
1
select * 
from (SELECT * FROM table_2010
      WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01'
      union
      SELECT * FROM table_2011
      WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01'
) as t
ORDER BY date_created
于 2012-05-28T14:50:35.800 に答える
0

エイリアスを使用する'

SELECT * 
FROM table_2010 as t2010, table_2011 as t2011 
WHERE t2010.date_created BETWEEN '2010-04-01' AND '2011-04-01'
ORDER BY t2010.date_created
于 2012-05-28T14:47:41.950 に答える
0

これを試して

SELECT table_2010.*, table_2011.* 
FROM table_2010, table_2011 
WHERE table_2010.date_created >= '2010-04-01' AND table_2011.date_created <= '2011-04-01'
ORDER BY table_2010.date_created, table_2011.date_created

2010年の表には2010年のみのデータがあり、2011年の表には2011年のみのデータがあると思います。

于 2012-05-28T14:49:21.807 に答える
0
SELECT *  FROM table_2010 
WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01' ORDER BY date_created 

union

SELECT *  FROM table_2011 
WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01' ORDER BY date_created 
于 2012-05-28T14:49:32.803 に答える
0

これはユニオンですが、テーブル間で順序を取得するには、ユニオンから選択する必要があります。ただし、date_createdが常にテーブルの年にある場合は、そのステップをスキップできる場合があります。

Select * From (
SELECT *  FROM table_2010
WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01'
Union all
Select * From Table_2010
WHERE date_created BETWEEN '2010-04-01' AND '2011-04-01'
) allmyTables
ORDER BY date_created 
于 2012-05-28T14:52:08.267 に答える