我该怎么加入我的桌子?

时间:2013-11-29 14:48:39

标签: sql sql-server sql-server-2008 join

我正在学习C#和一些SQL服务器,现在我正在尝试从我的小型数据库中获取信息。

我有两个表:MovieMovieHandler

在表格Movie中,我有MovieCodeLable,这是一个唯一的号码,以及电影的Title

在MovieHandler表格中,我有MovieCodeLable,这与我的电影表中的相同,而且我还有她的列InStore,它是0或1,因为它不存储或存在存储。

我正在尝试显示不在商店中的电影的标题。但我发现很难弄清楚如何加入表格。

我试过这个SQL查询:

SELECT        Title
FROM          Movie
JOIN          MovieCodeLable
ON            MovieHandler.MovieCodeLable
WHERE         InStore = 0

由于我只是在Visual Studio 2012中尝试此查询时遇到错误,我可能错过了一些基于SQL和JOINS的基础知识,但我希望有些人能够使JOINS顺利成为我和其他人的黄油,并且学习它。 / p>

4 个答案:

答案 0 :(得分:6)

你的JOIN错了,你的ON条款不完整。 JOIN应该包含您要加入的2个表的名称,在本例中是Movie和MovieHandler ON应该是格式A = B的表达式。所以您的查询应该是:

SELECT        Title
FROM          Movie
JOIN          MovieHandler
ON            Movie.MovieCodeLable = MovieHandler.MovieCodeLable
WHERE         InStore = 0

答案 1 :(得分:2)

您需要指定两个JOIN字段

SELECT        Title
FROM          Movie
JOIN          MovieHandler
ON            Movie.MovieCodeLable = MovieHandler.MovieCodeLable
WHERE         InStore = 0

答案 2 :(得分:1)

你必须像这样进行查询

SELECT        Title
FROM          Movie
JOIN          MovieHandler
ON            Movie.MovieCodeLable = MovieHandler.MovieCodeLable
WHERE         InStore = 0

您必须完成ON条件。您需要在ON条件后指定要匹配的列。转到此链接有表http://www.w3schools.com/sql/sql_join.asp的解释

答案 3 :(得分:0)

我在oracle中这样做。不确定它是否适合你...

尝试:

Select Mv.Title 
      ,other_columns
  from Movie        Mv
      ,MovieHandler Mvh
 Where Mv.MovieCodeLable = Mvh.MovieCodeLable
   and (whatever other criteria you want

只要MovieCodeLable是唯一的,你就可以了

Other_columns可以是带有table.column语法的表格格式的任何列(我使用表格快捷键Mv和Mvh来引用表格,我不知道这对非oracle是否合法)