2016-12-06 41 views
0
select id, bossid 
from employees 
where id in (22299, 22299) 

這導致如何使SQL返回相同的數據

id |bossid 
22299|20529 

我想

id |bossid 
22299|20529 
22299|20529 

有沒有一種方法,使數據庫返回的結果也是這樣嗎?

+0

你爲什麼要這個? – Erik

+0

@Erik我需要找出數據庫中每個id事件的bossid。例如,ID 22299取得了3個事件。我正在研究與成就有關的問題,並做到這一點,我需要老闆的ID。陪伴身份證。希望這是有道理的。 – acecabana

+2

如果您在查詢中包含achievement-id,您將獲得全部3條記錄。如果沒有使返回值唯一的東西,則不會獲得同一行的多個副本。 – Erik

回答

0

使用union作爲

select id, bossid 
from employees 
where id = 22299 
UNION 
select id, bossid 
from employees 
where id = 22299 
0

一種方法是使用union all

select id, bossid 
from employees 
where id in (22299) 
union all 
select id, bossid 
from employees 
where id in (22299); 

另一個用途join這可能看起來像:

select e.id, e.bossid 
from employees e join 
    (select 22299 as id union all select 22299 
    ) ids 
    on e.id = ids.id; 

或者,只是使用cross join

select e.id, e.bossid 
from employees e join 
    (select 1 as n union all select 2 
    ) ids; 
+0

這是如何衡量的?我有超過300個個人ID,我需要SQL才能返回bossids。 – acecabana

+0

這些ID從哪裏來?如果來自表格,那麼只需使用'join'。如果沒有,那麼你爲什麼關心重複? –

相關問題