我有两个表,我想将它们连接在一起。SQL命令可以在同一命令行中使用,但可以在两个不同的表上使用
表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列包含int值为5的位置。在Table2中,应该选择所有列和行都在给定日期范围内。
我想知道WHERE
子句是否应该在CROSS JOIN
子句之后,如上所述。另外,我应该删除第二个WHERE
关键字,而不是有以下命令。
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
我的第三个问题是很棘手的。可以将2个不同的WHERE
子句用于像这样的单个命令,但是可以应用于单独的表?当我加入表格时,我可以有WHERE Table1 (*Condition*) AND WHERE Table2 (*Condition*)
吗?
我想我可以通过为每个表创建2个单独的SQL命令1并避免使用JOIN
和2 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
如何在这些2个表有关?没有加入条件... – Randy
@Randy:我想这就是为什么Derek正在使用CROSS JOIN。 –
CROSS JOIN子句应该与它们相关 – TheDude