SQL-соединение: избежать дублирования записей при объединении двух таблиц? - PullRequest
1 голос
/ 19 декабря 2010

У меня есть две таблицы, A и B, и я пытаюсь выбрать строки из A на основе запроса соединения.Я получаю некоторые записи из этих таблиц, но есть несколько повторяющихся записей.Как мне отфильтровать этот запрос, чтобы избежать повторяющихся строк?Сейчас я делаю это с помощью кода Java, помещая их в HashSet.

Ответы [ 2 ]

8 голосов
/ 19 декабря 2010

Ключевое слово DISTINCT используется для исключения повторяющихся строк из результата запроса:

SELECT DISTINCT ...
  FROM A
  JOIN B ON ...

Однако иногда вы можете (возможно, даже «часто», но не всегда) избегать необходимости в этом, если таблицы организованы правильно и вы правильно соединяетесь.

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

3 голосов
/ 19 декабря 2010

Вы должны объяснить структуру таблицы, но я могу понять ваш вопрос.Вы можете использовать этот запрос:

select a.atribute1, a.atribute2, b.atribut1, b.atribut2
  from a inner join b
    on a.primarykey = b.foreign_key
 where a.atribute = ""
 group by a.atribute2, b.atribute2

Вы можете использовать a.atribute = "" для проверки.

Используйте group by a.atribute2, b.atribute2, если вы хотите строку в одной группе этого атрибута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...