私は SQL Server を使用しています (2005 年だと思います)。
2 列と 439 行ありTableA
ます (各行は一意です)。
+----------+
|ID | Name |
+----------+
35 列と何十万もの行がTableB
あります (各行も一意です)。
+------------------------------------------------------------------------------+
|Date | ID | Name | Blah1 | Blah2 | ... | Hour1 | Hour2 | Hour3 | ... | Hour24 |
+------------------------------------------------------------------------------+
の各行にTableB
は、1 時間ごとの観測とその他のハウスキーピング情報があります。テスト目的で、今日の日付、つまり 2013 年 4 月 19 日のみに関心があります。
私が行った場合:
Select count(*)
from TableB
where Date = '4/19/2013 12:00:00 AM'
10526 を取得しました。これは、毎日 1 時間ごとの観測データがある 10526 の異なる場所があるため、正しいです。
TableA と TableB を LEFT JOIN したいのですがon a.id = b.id
、これは 439 行の結果を生成する必要があります。
残念ながら、結果には 246 行あります。どうすればいいの?に一致があったかどうかに関係なく、LEFT JOIN
すべての行を返すと仮定していませんか?TableA
TableB
*編集*
私が使用した完全なクエリは次のとおりです。
select *
from TableA as a
left join TableB as b on a.id = b.id
where RealDate = '4/20/2013 12:00:00 AM'