我正在尝试编写一个使用其他查询信息的SQL查询。我已经在MSAccess中对它进行了测试并且它可以正常工作,但是我需要将它移到SQL上以将其写入代码中,因为我不知道如何将SELECT
语句加入到另一个{ {1}}。
以下是Access查询,第一个名为qryReadMeRequired的查询:
SELECT
第二个查询使用qryReadMeRequired:
SELECT
zEdits.ID,
tblReadMeDocument.ID AS DocumentID
FROM zEdits, tblReadMeDocument
WHERE (((zEdits.ID)=[Forms]![frmMain]![LoginID])
AND ((zEdits.WorkArea)=[Forms]![frmMain]![WorkArea])
AND ((tblReadMeDocument.RequiredBy)="all")) OR (((zEdits.ID)=[Forms]![frmMain]![LoginID]) AND ((zEdits.WorkArea)=[Forms]![frmMain]![WorkArea]) AND ((tblReadMeDocument.RequiredBy)=[Forms]![frmMain]![WorkArea]));
由于
答案 0 :(得分:0)
这称为subquery
。要创建子查询,请粘贴完整的SELECT语句,该语句表示FROM子句中括号内的子查询。然后你给它一个别名:
SELECT qryReadMeRequired.ID,
tblReadMeRecord.ReadDate
FROM tblReadMeRecord
RIGHT JOIN
(
SELECT zEdits.ID,
tblReadMeDocument.ID AS DocumentID
FROM zEdits,
tblReadMeDocument
WHERE
zEdits.ID = [Forms]![frmMain]![LoginID]
AND zEdits.WorkArea = [Forms]![frmMain]![WorkArea]
AND (tblReadMeDocument.RequiredBy = "all" OR tblReadMeDocument.RequiredBy = [Forms]![frmMain]![WorkArea])
) AS qryReadMeRequired ON tblReadMeRecord.DocumentID = qryReadMeRequired.DocumentID
AND tblReadMeRecord.PersonID = qryReadMeRequired.ID
WHERE tblReadMeRecord.ReadDate IS NULL;
我还重写了一下,删除了多余的括号和冗余逻辑。