问题&&上下文
我得到了双倍的结果。表注册包含2列&包含event_id
和participant_id
的2行1,3
,1,1
。
现在,当我选择所有注册(select * from registration
)时,这确实有效。
2名参与者的姓名(firstname, lastname)
为('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;
错误消息
none,只返回4行而不是1行。
答案 0 :(得分: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;