[英]SQL returns double data (probably wrong SQL query)
問題與背景
我得到了雙重結果。 表注冊包含2列和2行, event_id
,具有1,3
和1,1
participant_id
event_id
。
現在,當我選擇所有注冊( 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;
錯誤訊息
沒有,僅返回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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.