отображение данных sql как 1 совпадение - PullRequest
0 голосов
/ 15 августа 2010

Я надеюсь, что могу объяснить это ясно: У меня есть две таблицы со следующими структурами:

TABLE A{id, source, url}
TABLE A2{matchid,matchsource,matchurl,country,lang}

и у меня есть соединение с ними:

TABLE B{id,source,url,matchid,matchsource,matchurl,country,lang}

Таблица B - это объединение A с A2, где для каждой записи в A есть совпадающие записи с одинаковым URL в A2. Теперь я хотел бы отобразить данные следующим образом например,

100 google www.google.com 200 google blog  www.gblog.com USA english
                          201 google news  www.gnews.com USA english

вместо

100 google www.google.com 200 google blog  www.gblog.com USA english
100 google www.google.com 201 google news  www.gnews.com USA english

из которых сотни совпадающих записей.

Возможно ли это? Так как мне нужно отобразить записи с первым совпадением для каждой записи в таблице A

Ответы [ 3 ]

2 голосов
/ 15 августа 2010

Вы не можете сделать это в SQL. Это разумно.

Это группировка по первым 3 столбцам, которые должны быть записаны в презентации / клиенте.

1 голос
/ 15 августа 2010

Полагаю, это будет возможно каким-то образом, но я уверен, что вы этого не захотите. Угадайте, что вы хотите для оптимизации производительности? Это не улучшит ситуацию, я просто воспользуюсь тем, что вы уже нашли.

1 голос
/ 15 августа 2010

Я бы предложил ограничить использование вами SQL только извлечением данных и оставить представление этих данных на усмотрение вашего приложения.

Я не сомневаюсь, что вы сможете достичь этого эффекта в сыром SQLс помощью таких вещей, как union all и fetch first (так что вы будете по-разному относиться к первой строке раздела), но это приведет к ненужной нагрузке на вашу базу данных и будет серьезно ужасным SQL.

Другими словами, извлеките данные в соответствии с вашим битом «вместо» и просто используйте уровень представления (код клиента базы данных), чтобы отображать только первые три столбца, если:

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