2011-05-24 78 views
0

我有两个表选择命令帮助

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和

+0

和世界卫生大会你的问题完全是?你试过什么了? – 2011-05-24 10:07:11

+0

你的数据类型是Datetime还是Date或Varchar? Sql版本? – Pankaj 2011-05-24 10:38:53

回答

1
之间

可以JOIN两个表

通过使用连接,你可以从两个或多个表中的数据 基于 表之间的逻辑关系 。联合表示SQL Server如何使用来自一个 表中的数据来选择另一个 表中的行。

连接条件定义了方式2个 表中的查询的关系为:

  • 指定从每个表中的列将用于加入。 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' 

就够

+0

值得一提的是UNION声明吗?我无法决定他是否想要一个结果集。 – MrEdmundo 2011-05-24 10:10:15

+0

@MEdEdmundo - 我怀疑这是OP的意图,但他绝对应该考虑加入他的伎俩。 – 2011-05-24 10:14:07

0

行,所以你可能想在看向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') 
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') 
+0

谢谢你,我明白了.. – sanu 2011-05-24 10:30:40

0

1.

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

其中电影名称= 'saanu'

2.

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