SQL SELECT多次返回相同的项目

时间:2016-09-21 12:25:34

标签: sql inner-join distinct

我有以下SQL命令:

SELECT * 
FROM Notes 
INNER JOIN  AuthorizedPersons 
ON Notes.idPass = AuthorizedPersons.idPass 
AND AuthorizedPersons.Privileged = 0 
AND Notes.idUser =7

这会返回正确的项目!但是对于每个存在的AuthorizedPerson,都会返回相同的项目两次!

(使用DISTINCT无法解决问题,因为项目可以具有相同的名称。)

查询结果: enter image description here

正如你在idPass 15和16中看到的,描述可以是相同的但是idPass不能,因为它是主键!

查询返回idPass 30的3倍...

2 个答案:

答案 0 :(得分:0)

尝试使用Where而不是第一个AND。

vm.calendar = {
  weeks: [
    { days: [ { date: "2016-09-12T12:05:42.03" }, ... ] }
    { days: [ { date: "2016-09-22T12:05:42.03" }, ... ] }
  ]
}

答案 1 :(得分:0)

在表格AuthorizedPersons中,以' IdUs..'开头的列对同一个idPass重复多次。这就是为什么你要获得相同值idpass的多行。为了避免重复记录,你可以使用' DISTINCT '排除该特定列后的关键字,或者您可以通过删除其他记录来选择该重复记录中的任何一条记录。

enter image description here