Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL UNION-是否可以在第二次选择中使用第一次选择的结果_Sql_Sql Server - Fatal编程技术网

SQL UNION-是否可以在第二次选择中使用第一次选择的结果

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

我正在连接到具有多个表的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, 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_名字,谢谢,这是一个漫长的一天,如果我没有弄错的话,我相信应该是加入价格,但还是谢谢你