2011-05-24 80 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'