2016-11-11 143 views
0

我打算選擇PH表中所有與RU表中基於三個字段的元組匹配的記錄匹配的記錄:(f1, f2, f3)基於元組選擇SQL記錄

我不只是想要包含f1的記錄和包含f2的記錄和包含f3的記錄,而是記錄中的所有這三個字段。

我該怎麼辦?加入?

感謝您的幫助!

+0

你嘗試什麼嗎? –

+1

** [編輯] **您的問題,並根據該數據添加一些示例數據和預期輸出。 [**格式化**](http://stackoverflow.com/editing-help#code)**文本**請[無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why -hy-i-not-upload-images-code-on-so-when-asked-a-question/285557#285557) –

+0

'select * from PH join RU using(f1,f2,f3)' –

回答

0

我不確定你在這裏試圖達到什麼,因爲你的問題缺乏細節。但是從我可以收集的信息來看,您可能需要使用set操作符INTERSECT。例如:

SELECT f1, f2, f3 FROM PH 
INTERSECT 
SELECT f1, f2, f3 FROM RU; 
0

您可以通過使用相關子查詢中RU檢查比賽做到這一點:

SELECT 
    * 
FROM 
    PH 
WHERE 
    EXISTS(
     SELECT 
      1 
     FROM 
      RU 
     WHERE 
      RU.f1=PH.f1 AND 
      RU.f2=PH.f2 AND 
      RU.f3=PH.f3 
    ); 
+0

Thank你非常TT,這正是我想要的 – Sovakah

+0

@Sovakah如果這回答你的問題到你滿意,請檢查我的答案旁邊的複選標記(✔)。在這裏閱讀更多關於這個禮節的信息:[當有人回答我的問題時我應該怎麼做?](https://stackoverflow.com/help/someone-answers)。 –

1

使用的IN條件與三列。

以下是標準ANSI SQL:

select * 
from ph 
where (f1, f2, f3) in (select r.f1, r.f2, r.f3 
         from ruh r)