SQL UNION-是否可以在第二次选择中使用第一次选择的结果
我正在连接到具有多个表的SQL server 例如,假设有两个表: 表名称将ID链接到产品名称,例如5、苹果、12、鸡蛋 将产品名称与价格联系起来的价格表,例如苹果4美元、鸡蛋5美元、橙子12美元 我想编写一个select命令,将这些数据链接在一起,大致如下:SQL UNION-是否可以在第二次选择中使用第一次选择的结果,sql,sql-server,Sql,Sql Server,我正在连接到具有多个表的SQL server 例如,假设有两个表: 表名称将ID链接到产品名称,例如5、苹果、12、鸡蛋 将产品名称与价格联系起来的价格表,例如苹果4美元、鸡蛋5美元、橙子12美元 我想编写一个select命令,将这些数据链接在一起,大致如下: SELECT id, name FROM names UNION SELECT price FROM prices where name = **name from the first bit** 返回的结果类似于: 5, ap
SELECT id, name
FROM names
UNION
SELECT price
FROM prices where name = **name from the first bit**
返回的结果类似于:
5, apple, $4
12, eggs, $5
橘子不会被退回,因为它不在名称表中
有一点背景知识:我最初的计划是首先获取名称,然后对它们进行迭代,对每个名称进行新的查询,以获取价格
但是,这将使用C实现,如果同一连接上当前有打开,Visual Studio将不允许打开第二个查询
改用类似于我上面所述的方法似乎是实现我想要的目标的更好方法,查询更少、更整洁等。但欢迎其他建议这是一个联合,而不是联合
SELECT n1.id, n1.name, p1.price
FROM names n1
INNER JOIN prices p1
ON n1.name = p1.name
UNION将两个或多个查询的结果合并到一个结果集中,该结果集包含属于UNION中所有查询的所有行。您需要内部联接来组合两个或多个表中的记录:
SELECT n.id,
n.name,
p.price
FROM names n
INNER JOIN prices p
ON n.name = p.name --or id
看起来你想加入而不是联合。真的。UNION将两个具有相同形状的查询中的行相加。你想做一些像。。。从名字到名字在price.name=names.name…@a_horse_和_no_名字,谢谢,这是一个漫长的一天,如果我没有弄错的话,我相信应该是加入价格,但还是谢谢你