簡體   English   中英

SQL返回雙倍數據(可能是錯誤的SQL查詢)

[英]SQL returns double data (probably wrong SQL query)

問題與背景

我得到了雙重結果。 表注冊包含2列和2行, event_id ,具有1,31,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM