2017-10-14 48 views
0

我有表1與A,B,C,D,E列和結合表2和表3後的選擇查詢的結果是A,D列(與表1相比很少值)說法視圖1.#Sql比較一個表的數據和選擇查詢結果的數據

現在我需要運行另一個查詢,如果表1列A,D的值在結果視圖中。這個新的查詢也有條件,並結合兩個表

任何人都可以請讓我知道最好的出路嗎?

表1

A    B  C D 

Fruit  Orange  1 3 

Vegetable Onion  89 3 

Fruit  Mango  83 22 

Fruit  Banana  3 2 

Vegetable Beans  382 2 

視圖1

A    B  
Fruit  Orange  
Fruit  Banana  
Vegetable Beans 

最終輸出

A    B  C D 

Fruit  Orange 1 3 

Fruit  Banana 3 2 

Vegetable Beans 382 2 
+1

請參閱[爲什麼我應該爲我認爲是非常簡單的SQL查詢提供一個MCVE](http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve -for-what-seem-to-what-seems-simple-sql-query) – Strawberry

+1

提供樣本數據和期望的結果。 –

+0

希望的例子數據可能讓你知道預期的是什麼 –

回答

0
SELECT 
    view1.a, 
    view1.b, 
    table1.c, 
    table1.d 
FROM 
    table1 
    JOIN (
    --select query of your view 
     SELECT 
      * 
     FROM 
      your_view 
    ) view1 ON 
     table1.a = view1.a 
    AND 
     table1.b = view1.b; 
0

所有你需要的是inner join之間的表和視圖。 Inner join將在兩個表中找到第A & B列的匹配項。

select table1.* 
    from table 1 
    inner join view1 
    on table1.a = view1.a 
    and table1.b = view1.b; 

希望它有幫助!

+0

我試過這個befor本身,但它不滿足我的where子句..因爲我有表中的數百萬記錄 –

+0

你可以添加到目前爲止嘗試過的查詢嗎? –

+0

我已更新where子句,它的工作。謝謝 –