问题&&上下文
我得到了双倍的结果.表注册包含2列和2行event_id,participant_id有1,3和1,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行.
打开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)