【发布时间】:2016-10-23 12:17:40
【问题描述】:
如果我遇到以下问题,我将不胜感激。 我有以下两个表(tblA 和 tblB):
tblA
+----+------+
| ID | item |
+----+------+
| 1 | c |
| 2 | a |
| 3 | b |
| 4 | e |
| 5 | d |
| 6 | f |
| 7 | a |
| 8 | c |
+----+------+
和
tblB
+----+----+
| f1 | f2 |
+----+----+
| a | |
| b | a |
| c | a |
| d | |
| e | |
| f | d |
| g | d |
| h | d |
| I | |
+----+----+
我想要实现的是:tblA 中的 item 字段中的值出现在 tblB 中的 f2 字段中我想选择所有 tblB f1 值以及 tblA 中的 ID 值,以便我们得到以下结果:
+----+------+
| ID | item |
+----+------+
| 2 | b |
| 2 | c |
| 5 | f |
| 5 | g |
| 5 | h |
| 7 | b |
| 7 | c |
+----+------+
请注意,来自 tblA 的 ID 值 2 和 7,虽然具有相同的项目值 ('a'),但仍分别出现在结果中;这是必需的。
我一直在玩弄以下想法:
SELECT f1 FROM tblB
WHERE f2 IN(SELECT item FROM tblA)
//
SELECT ID,f1 FROM tblA,tblB
WHERE f2 IN(SELECT item FROM tblA)
//
SELECT x.ID, y.f1
FROM tblA AS x, tblB AS y
WHERE y.f2 IN(SELECT item FROM tblA)
但我很难到达那里。
【问题讨论】: