結合したい 2 つのテーブルがあります。
表1
Year, ID, Theme,
表2
First, Last, WeekID, Date, Affiliation
このコマンドを使いたい
SELECT *
FROM Table1
CROSS JOIN Table2
WHERE Table1.ID = 5
AND WHERE Table2.Date >= 1/1/2011
AND Table2.Date <= 12/30/2011
ORDER BY Asc
私が望んでいたのは、テーブル 1 のすべての行と列が選択され、ID 列に 5 の int 値が含まれていることです。テーブル 2 では、指定された日付範囲内にあるすべての列と行を選択する必要があります。
WHERE
上記のように、句が句の後に来る必要があるかどうかを知りたいですCROSS JOIN
。WHERE
また、2 番目のキーワードを削除して、代わりに次のコマンドを使用する必要があります。
SELECT *
FROM Table1
CROSS JOIN Table2
WHERE Table1.ID = 5
AND Table2.Date >= 1/1/2011
AND Table2.Date <= 12/30/2011
ORDER BY Asc
私の 3 番目の質問はトリッキーな質問です。このように 1 つのコマンドで2 つの異なるWHERE
句を使用できますが、別々のテーブルに適用できますか? WHERE Table1 (*Condition*) AND WHERE Table2 (*Condition*)
テーブルに参加するときに意味がありますか?
JOIN
テーブルごとに2つの別々のSQLコマンドを1つずつ作成し、 and2 WHERE
句を避けるだけで、問題全体を簡単に解決できると思います。これはあなたが推奨するものでしょうか?
最終結果は次のようになります
表3
ID, Year, Theme, WeekID, Date, First, Last, Affiliation
次に、セルは日付に基づいて昇順で並べられます。
サンプルテーブルは以下です
表3
ID Year Theme WeekID Date First Last Affiliation
5 2011 Stuff1 1 01/09/2011 Foo Bar Baz Inc
5 2011 Stuff2 2 01/14/2011 Flum Baz Bar Inc
5 2011 Stuff3 3 04/15/2011 Bar Flum Bub Inc
5 2011 Stuff4 4 05/01/2011 Bar Foo FlumBub Inc
5 2011 Stuff5 5 08/16/2011 Bub Baz Foo Inc