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

Это приводит кКак сделать SQL Return Идентичные данные

id |bossid 
22299|20529 

Я хотел

id |bossid 
22299|20529 
22299|20529 

Есть ли способ, чтобы сделать результаты возвращения дб, как это?

+0

Почему именно вы хотите этого? – Erik

+0

@Erik Мне нужно узнать bossid для каждого события id в базе данных. Например, id 22299 достиг 3 событий. Я изучаю проблемы, связанные с достижениями, и для этого мне нужен идентификатор босса. Сопровождать идентификатор. Надеюсь, это имеет смысл. – acecabana

+2

Если вы включите идентификатор достижения в запрос, вы получите все 3 записи. Без того, чтобы сделать возвращаемое значение уникальным, вы не получите несколько копий одной и той же строки. – Erik

ответ

0

Используйте объединение в

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 индивидуальных идентификаторов, в которых мне нужен sql для возврата боссов. – acecabana

+0

Откуда берутся эти идентификаторы? Если из таблицы, то просто используйте 'join'. Если нет, то почему вы заботитесь о дубликатах? –

Смежные вопросы