SQL返回双数据(可能是错误的SQL查询)

Iva*_*ers 0 mysql sql

问题&&上下文

我得到了双倍的结果.表注册包含2列和2行event_id,participant_id1,31,1.

现在,当我选择所有注册(select * from registration)时,这确实有效.

(firstname, lastname)2名参与者的姓名是('test' ,'test1')('Gregor', 'unknown').

期望的结果

我想创建一个搜索功能,它只会返回为第一个或最后一个名字中带有'test'的事件注册它们的参与者.

目前的结果

通过下面的查询,我得到4个结果(所有参与者都是相同的).

select * from participant p, event e, registration r 
            where p.firstname LIKE '%test%'
            OR p.lastname LIKE '%test%' 
            AND p.id = r.participant_id 
            AND e.id = r.event_id 
            AND e.id = 1;
Run Code Online (Sandbox Code Playgroud)

错误消息

none,只返回4行而不是1行.

Joh*_*nHC 5

打开OR,一个独特的将帮助...尝试

select distinct * 
from participant p, event e, registration r 
where (p.firstname LIKE '%test%'
  OR p.lastname LIKE '%test%' )
AND p.id = r.participant_id 
AND e.id = r.event_id 
AND e.id = 1;
Run Code Online (Sandbox Code Playgroud)