给定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
答案 0 :(得分:1)
您至少有三个错误。
WHERE
子句应该在JOIN .. ON
子句之后,而不是之前。ON xxx AND ON yyy
。只需写下ON xxx AND yyy
。需要考虑的其他要点:
input1, ..., input4
来自何处?table0
应该重命名为person
,table5
改为animal
,将table1改名为person_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