如何在MS Access中将自定义行添加到SQL查询?
我尝试使用UNION,但我曾经收到以下信息: 查询输入必须至少包含一个表或查询 我尝试的查询是:如何在MS Access中将自定义行添加到SQL查询?,sql,ms-access,Sql,Ms Access,我尝试使用UNION,但我曾经收到以下信息: 查询输入必须至少包含一个表或查询 我尝试的查询是: SELECT NULL AS ID, NULL AS Item UNION SELECT Items.ID AS ID, Items.Item as Item FROM Items INNER JOIN People ON Items.PID=People.PID WHERE People.Name='John'; 两个select语句都独立运行O
SELECT NULL AS ID, NULL AS Item
UNION
SELECT Items.ID AS ID, Items.Item as Item
FROM Items
INNER JOIN People
ON Items.PID=People.PID
WHERE People.Name='John';
两个select语句都独立运行OK 使用
Dual
表格
SELECT NULL AS ID, NULL AS Item
FROM dual
UNION ALL
SELECT i.ID AS ID, i.Item AS Item
FROM Items i
INNER JOIN People p ON i.PID = p.PID
WHERE p.Name = 'John';
您需要指定数据来自哪个表。试试这个:
SELECT NULL AS ID, NULL AS Item
FROM Items INNER JOIN People ON Items.PID=People.PID
UNION
SELECT Items.ID AS ID, Items.Item as Item
FROM Items INNER JOIN People ON Items.PID=People.PID
WHERE People.Name='John';
在MS Access中,您将需要使用乱码。这可能会奏效:
SELECT TOP 1 NULL AS ID, NULL AS Item
FROM (SELECT TOP 1 *
FROM ITEMS
ORDER BY ID
) as i
UNION ALL
SELECT Items.ID AS ID, Items.Item as Item
FROM Items INNER JOIN
People
ON Items.PID = People.PID
WHERE People.Name = 'John';
子查询的唯一目的是获取一个包含一行的表。请记住,如果存在关联,MS Access中的
TOP 1
可以返回多行。如果联合查询顺序更改为以形成的查询开始,然后更改为空查询,则可能会:
SELECT Items.ID AS ID, Items.Item as Item
FROM Items
INNER JOIN People
ON Items.PID=People.PID
WHERE People.Name='John'
union
SELECT NULL AS ID, NULL AS Item
我不相信Access有双表,不过如果你把你的答案和HansUp的从这里来的答案结合起来:那么它应该可以工作。它确实在Access中使用了双表@Newd@Hituptony你确定吗?您是否有引用该链接的链接?@Newd您必须创建它,但它是可以完成的@Hituptony我会继续点击我发布的链接,查看我提到的答案:-)加1,教我一个新单词“kludge”。。。这是一个很好的答案