C# 如何进行这样的SQL查询?
给定2个基表,1个表存储它们之间的关系,并带有一些额外的属性;在从关系表中提取关系的基础上,将一些额外的属性值作为用户输入 此信息的ID是主要值(人和动物),而不是名称。我想在屏幕上显示名字,比如根据你输入的信息,找到的记录是这个人带着这个动物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
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
,table1改名为animal
,以便更容易理解每个表的用途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,而不是我想在屏幕上显示的名字,比如根据你提供的输入,找到的记录是这个人带着这个动物就是这样,我怀疑这个问题太本地化了,对未来的读者没有多大帮助。因此,我认为应以“过于宽泛”的方式予以关闭。