SQL子查询无法正常工作

时间:2014-04-16 07:38:09

标签: sql ms-access subquery

我有一个类似

的表结构
Files                     Latest_Update
-------------------      ------------------------------
Fid - Name - Type -      l-id  - c_name - c_val - Fid -
-------------------      ------------------------------
1   - D1   - xls  -       1    - text1  - hello -  1  -
-------------------      ------------------------------

  Revisions
------------------------------
r-id  - c_name - c_val - Fid -
------------------------------
 1    - text1  - bye   -  1  -
------------------------------

我想在RevisionsLatest_Update中获取text1控件的所有值 这是我试过的

SELECT RS.c_name. RS.c_val from (SELECT Revisions.c_name, Revisions.c_val, Latest_Update.c_name,Latest_Update.c_val
From Revisions
INNER JOIN Latest_Update on Revisions.Fid = Latest_Updates.Fid) AS RS

但它不起作用,我需要结果像

Result
------------------------------
- c_name - c_val - Fid -
------------------------------
- text1  - Hello-  1   -
------------------------------
- text1  - bye   -  1  -
------------------------------

我正在使用MS ACCESS 2010

3 个答案:

答案 0 :(得分:2)

我认为工会是解决方案。像...这样的东西。

SELECT *
FROM (
SELECT Revisions.c_name, Revisions.c_val, Revisions.Fid
  FROM Revisions
UNION ALL
SELECT Latest_Update.c_name,Latest_Update.c_val, Latest_Update.c_name,Latest_Update.Fid
FROM Latest_Update
) RS
<if needed add Where Condition>
ORDER BY RS.Fid

答案 1 :(得分:1)

为什么不使用union而不是内连接...

select * from (
select c_name,c_val,fid from Revisions
union 
select c_name,c_val,fid from Latest_updates)x
where fid = 1

答案 2 :(得分:1)

SELECT c_name, c_val, Fid FROM Latest_Update
WHERE c_name = 'text1'
UNION ALL
SELECT c_name, c_val, Fid FROM Revisions
WHERE c_name = 'text1'