选择命令帮助

时间:2011-05-24 10:03:34

标签: sql sql-server select

我有两张桌子

T1

movieid  showdate
1001    2011-05-23
1002    2011-05-23
1001    2011-05-23
1003    2011-05-23
1001    2011-05-22
1003    2011-05-22
1001    2011-05-22

T2

movieid  moviename
1001    saanu                                             
1002    ambika
1003    sarah
1004    hello                                             

我希望结果为

moviename

saanu

日期为2011-05-22

moviename

saanu
ambika
sarah

当showdate介于2011-05-22和2011-05-23之间

4 个答案:

答案 0 :(得分:1)

你可以JOIN两个表

  

通过使用联接,您可以检索数据   来自两个或多个基于的表   之间的逻辑关系   表。加入表明微软如何   SQL Server应该使用一个数据   用于选择另一行中的行的表   表

     

连接条件定义了第二种方式   表通过以下方式与查询相关:

     
      
  • 指定要用于连接的每个表中的列。一个    典型的连接条件指定a    来自一个表的外键及其    另一个表中的关联键。

  •   
  • 指定要使用的逻辑运算符(例如,=或<>,)    比较列中的值。

  •   

声明

SELECT  DISTINCT moviename
FROM    t2
        INNER JOIN t1 ON t1.movieid = t2.movieid
WHERE   t1.showdate = '2011-05-22'

SELECT  DISTINCT moviename
FROM    t2
        INNER JOIN t1 ON t1.movieid = t2.movieid
WHERE   t1.showdate BETWEEN '2011-05-22' AND '2011-05-23'

就足够了

答案 1 :(得分:0)

好的,你可能想要使用AND / OR查看JOINS和WHERE语句。

例如

SELECT * FROM t2
INNER JOIN t1 ON t2.movieid = t1.moveid
WHERE (showdate = '2011-May-22 and moviename = 'saanu') OR (showdate between '2011-May-22' AND '2011-May-23')

答案 2 :(得分:0)

SELECT t1.movie_name
FROM t1, t2
WHERE t1.movieid = t2.movieid
AND t1.showdate = to_date('2011-05-22','YYYY-MM-DD')
OR t1.showdate BETWEEN to_date('2011-05-22','YYYY-MM-DD') AND to_date('2011-05-23','YYYY-MM-DD')

答案 3 :(得分:0)

1

select moviename from t2 join t1 on t1.movieid=t2.movieid and showdate='2011-05-22'

其中moviename ='saanu'

2

select moviename from t2 join t1 on t1.movieid=t2.movieid and showdate between '2011-05-22' and '2011-05-23'