【问题标题】:ms Access sql expandms 访问 sql 展开
【发布时间】: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)

但我很难到达那里。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    我认为这只是一个join

    select a.id, b.f1 
    from tblA as a inner join
         tblB as b
         on b.f2 = a.item
    order by a.id;
    

    【讨论】:

    • 非常感谢您的快速响应!完美运行。我需要阅读更多关于联接和别名的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多