【发布时间】:2014-08-18 18:54:25
【问题描述】:
我有两个类似的问题,我认为 this 与我需要的类似,但我无法弄清楚在我的情况下会是什么样子
1.
我有三个表,其中字段dID 将fd 连接到d 和dm 到d:
`fd`: `fID`, `dID` (`fID` and `dID` create the pk together)
`d`: `dID` (pk), `data`
`dm`: `dID`, `type` (`dID` and `type` create the pk together)
我正在寻找一种方法来查找 d 中满足 fID = 'condition1 和 type = 'condition2' 的所有记录
现在我已经通过以下方式解决了它(它有效,但它非常难看,所以我想要一个更好的解决方案)
Q1: SELECT dID FROM fd WHERE fID = 'condition1'
Q2: SELECT dID FROM dm WHERE type = 'condition2'
SELECT * FROM d WHERE d.dID IN
(SELECT Q1.dID FROM Q1 INNER JOIN Q2 ON Q1.dID = Q2.dID)
2.
现在我又多了三张桌子。 mID 将tm 连接到m 和typeID 将m 连接到types:
<br>
`tm`: `tmID`, `mID` (pk together)
`m`: `mID` (pk), `mnum`, `typeID`
`types`: `typeID` (pk), `type`
因此,当我对tmID 有条件时,我正在寻找一种从types 中选择type 和从m 中选择mnum 的方法
以下内容不正确,因为我希望能够同时选择mnum 和type,例如:SELECT types.type, m.mnum FROM ....。但基本上我想做这些选择
Q1: SELECT mID FROM tm WHERE tmID = 'condition3'
Q2: SELECT mnum, typeID FROM m WHERE m.mID IN Q1
Q3: SELECT type FROM types WHERE typeID IN Q2
【问题讨论】:
标签: sql ms-access select inner-join