Поиск одной записи из таблицы, имеющей уникальный PK и дубликат FK - PullRequest
0 голосов
/ 20 января 2010

Мне нужна одна запись из таблицы, имеющей уникальный первичный ключ и дублированный внешний ключ

Пожалуйста, смотрите прикрепленное изображение ниже

альтернативный текст http://img413.imageshack.us/img413/9940/findduplicate.png

Спасибо

Ответы [ 4 ]

0 голосов
/ 20 января 2010
Select fk, Count(*) 
from table1
group by fk
having count(*) > 1
0 голосов
/ 20 января 2010

Это извлечет все уникальные значения fk и textVal из таблицы:

select distinct fk, textVal from myTable
0 голосов
/ 20 января 2010

Посмотрите на этот пример.

Здесь вы найдете все идентификаторы из TABLE1, где они дублируются в TABLE2 как FOREIGN KEY

DECLARE @Table1 TABLE(
        id INT
)

DECLARE @Table2 TABLE(
        id INT,
        fkid INT
)

INSERT INTO @Table1 (id) SELECT 1
INSERT INTO @Table1 (id) SELECT 2
INSERT INTO @Table1 (id) SELECT 3

INSERT INTO @Table2 (id,fkid) SELECT 1, 1
INSERT INTO @Table2 (id,fkid) SELECT 2, 2
INSERT INTO @Table2 (id,fkid) SELECT 3, 2
INSERT INTO @Table2 (id,fkid) SELECT 4, 3
INSERT INTO @Table2 (id,fkid) SELECT 5, 3
INSERT INTO @Table2 (id,fkid) SELECT 6, 3

SELECT  t2.fkid
FROM    @Table2 t2
GROUP BY t2.fkid
HAVING COUNT(t2.fkid) > 1
0 голосов
/ 20 января 2010

Первичный ключ по определению означает, что будет только один, так что ваш вопрос, по-видимому, на самом деле выглядит так: любые строки с несколькими дочерними строками:

select * 
from table1 t
where exists (
    select id from table2 t2
    where t2.fkid = t.id
    group by t2.id
    having count(*) > 1
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...