Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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/3/sql-server-2005/2.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# 如何进行这样的SQL查询?_C#_Sql Server 2005 - Fatal编程技术网

C# 如何进行这样的SQL查询?

C# 如何进行这样的SQL查询?,c#,sql-server-2005,C#,Sql Server 2005,给定2个基表,1个表存储它们之间的关系,并带有一些额外的属性;在从关系表中提取关系的基础上,将一些额外的属性值作为用户输入 此信息的ID是主要值(人和动物),而不是名称。我想在屏幕上显示名字,比如根据你输入的信息,找到的记录是这个人带着这个动物 select DISTINCT table0.person_name, table5.animal_name from table1 INNER JOIN table0, table5 on table1.pe

给定2个基表,1个表存储它们之间的关系,并带有一些额外的属性;在从关系表中提取关系的基础上,将一些额外的属性值作为用户输入

此信息的ID是主要值(人和动物),而不是名称。我想在屏幕上显示名字,比如根据你输入的信息,找到的记录是这个人带着这个动物

    select DISTINCT table0.person_name, table5.animal_name 
      from table1

 INNER JOIN table0, table5 
        on table1.person_id=table0.person_id
            and
        table1.animal_id=table5.animal_id

where table1.aa=input1 
       and table1.bb=input2 
       and table1.cc=input3 
       and table1.dd=input4

您至少有三个错误

  • WHERE
    子句应位于
    JOIN之后。。在
    子句上,而不是在其前面
  • 您不能引用表5中的列,因为它没有出现在“发件人”列表中
  • 你不应该在xxx和yyy上写
    。只需在xxx和yyy上写
其他需要考虑的问题:

  • 你确定你的意思是完全的外部连接而不是内部连接吗
  • 为什么要添加不同的?如果一个人拥有两个同名的动物,你真的只想返回一行吗
  • input1,…,input4
    来自哪里
  • 我认为
    table0
    应该改名为
    person
    table5
    改名为
    animal
    ,table1改名为
    person\u animal
    ,以便更容易理解每个表的用途
关于你的意思,我最好的猜测是:

SELECT table0.person_name, table5.animal_name 
FROM table1 
JOIN table0 ON table1.person_id = table0.person_id
JOIN table5 ON table1.animal_id = table5.animal_id
WHERE table1.aa = input1 
  AND table1.bb = input2 
  AND table1.cc = input3 
  AND table1.dd = input4

这些都是我见过的最糟糕的名字。你能说得更清楚些什么现在不管用吗?i、 e.您试图解决的问题是什么?2个基表,1个表,根据从关系表中提取的关系,存储它们之间的关系,并使用fex额外属性,将fex额外属性值作为用户输入。这个信息有主要值(人和动物)的id,而不是我想在屏幕上显示的名字,比如根据你提供的输入,找到的记录是这个人带着这个动物就是这样,我怀疑这个问题太本地化了,对未来的读者没有多大帮助。因此,我认为应以“过于宽泛”的方式予以关闭。