Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
C# 如何使2个SELECT语句并集_C#_Sql_Select_Union_Union All - Fatal编程技术网

C# 如何使2个SELECT语句并集

C# 如何使2个SELECT语句并集,c#,sql,select,union,union-all,C#,Sql,Select,Union,Union All,这是我的疑问: string x1 = "SELECT unos_golub.drzava, unos_golub.spol, unos_golub.broj_goluba as broj, parovi.par_m, parovi.par_z,parovi.broj_para FROM parovi JOIN unos_golub ON (parovi.par_m=unos_golub.ID) WHERE parovi.uzgojni_par=1"; string x2 = "SELECT u

这是我的疑问:

string x1 = "SELECT unos_golub.drzava, unos_golub.spol, unos_golub.broj_goluba as broj, parovi.par_m, parovi.par_z,parovi.broj_para FROM parovi JOIN unos_golub ON (parovi.par_m=unos_golub.ID) WHERE parovi.uzgojni_par=1";
string x2 = "SELECT unos_golub.drzava, unos_golub.spol, unos_golub.broj_goluba as broj2, parovi.par_m, parovi.par_z,parovi.broj_para FROM parovi JOIN unos_golub ON (parovi.par_z=unos_golub.ID) WHERE parovi.uzgojni_par=1 ORDER BY broj_para ASC";
cmd.CommandText = x1+" UNION ALL "+x2;
在我的表格“parovi”中,有两列“par_m”和“par_z”。 在第二个表“unos_golub”中有“ID”和其他一些。现在我需要从“par_m”和“par_z”中获取值,在“unos_golub”中匹配它并获取一些数据

例如,如果我得到par_m=91和par_z=92,我需要在“unos_golub”的ID中找到这些数字,并获得91和92的不同数据并显示出来。 我想也许工会都能帮上忙,但它不起作用

这是我的桌子

  • 表:帕罗维
  • 表:unos_golub

  • 这种方法将把所有“M”和“Z”值放在一行中。注意,我加入了两次“unos_golub”表,但别名不同。所以,现在我有一个parovi记录同时指向各自的“M”和“Z”版本。并且可以从每个列中提取列,从而为它们提供别名结果列名,后缀为“M”和“Z”,表示它们各自的原点

    SELECT 
          parovi.par_m, 
          parovi.par_z,
          parovi.broj_para,
          unos_M.drzava as drzava_M, 
          unos_M.spol as spol_M, 
          unos_M.broj_goluba as broj_M, 
          unos_Z.drzava as drzava_Z, 
          unos_Z.spol as spol_Z, 
          unos_Z.broj_goluba as broj_Z
       FROM 
          parovi 
             JOIN unos_golub as unos_M
                ON parovi.par_m = unos_M.ID
             JOIN unos_golub as unos_Z
                ON parovi.par_m = unos_Z.ID
       WHERE 
          parovi.uzgojni_par=1";
    
    根据您希望显示所有行的注释,您的查询应该只需要一个小的更改。进行联合时,查询必须具有相同的列名。你通过他们改变了一个

    unos_golub.broj_goluba as broj
    vs
    unos_golub.broj_goluba as broj2
    

    这将使它无法通过查询。列名不同,因此失败。

    是要两个物理行,每个条目一行,还是要一行显示每个“M”和“Z”值对应的列?我想使用每个“M”和“Z”值对应的列来显示表2中的行。这有点混淆了您的需要。你能告诉我们预期的结果吗?你的数据库管理系统是什么。union总是取第一组列,如果数据类型相同,列数相等,就可以了。(sql server+mysql+PostgreSQL)@Kaf,我同意,但是一些引擎的行为不同,因此我无法根据提供的通用“sql”标记确认:)@FosAvance,更改为较低的“u”以匹配其余别名引用。我更新了我的答案。@FosAvance,是它,我提供的查询,还是联合列名的修复:)@FosAvance,不是。。。查看别名列名。。。您将分别需要读卡器[“broj_M”]和读卡器[“broj_Z”]、读卡器[“drzava_M”]和读卡器[“drzava_Z”]。。。根据列的命名方式,记录将全部位于同一行上。