Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > SQL
Перезагрузить страницу Выборка из двух таблиц
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию Выборка из двух таблиц - 14.02.2011, 15:10

Здравстуйте, у меня есть такой вопрос: Есть две таблицы, в одной есть ключ и несколько полей данных, вторая по внешнему ключу связана с первой таблице, и там тоже есть несколько полей данных. Одной записи из первой таблицы может соответствовать несколько записей из второй таблицы. Соответственно, при выборке через LEFT JOIN запись из первой таблицы может выбраться несколько раз. Задача - сделать так, чтобы при выборке данные из первой таблицы считывались один раз, а из второй - выбиралась только первая соответствующая запись.

Пример:

Table 1
ID Name Age
1 Ivan 10
2 Semen 15
3 Petr 11

Table 2
ID_t1 Data
1 123
2 555
1 676

Результат выборки:
ID Name Age Data
1 Ivan 10 123
2 Semen 15 555
3 Petr 11 NULL
Ответить с цитированием
  (#2 (permalink)) Старый
X-Cite_Forever X-Cite_Forever вне форума
Member
 
Сообщений: 536
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2006
По умолчанию 14.02.2011, 15:34

Это называется мусор в БД. даже в голову не приходит, кроме как курсор использовать и через динамический SQL.
Ответить с цитированием
  (#3 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 14.02.2011, 16:31

Ну, мусор/не мусор, не необходимость есть.. (
Ответить с цитированием
  (#4 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 14.02.2011, 16:38

Я в свое время решил подобную проблему "через задницу" - просто добавил в Table1 дополнительное поле - последний добавленный ключ из Table2. И по нему уже делал связь. Это, конечно, избыточность, но зато получилось гораздо быстрее, чем те конструкции со вложенными запросами, которые я пробовал до того
Ответить с цитированием
  (#5 (permalink)) Старый
Philin Philin вне форума
Member
 
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.10.2004
По умолчанию 21.02.2011, 06:26

SQL Код:
CREATE TABLE #Table1 (ID INT, Name VARCHAR(100), Age INT)

INSERT INTO #Table1 (ID, Name, Age)
 SELECT 1, 'Ivan', 10 UNION
 SELECT 2, 'Semen', 15 UNION
 SELECT 3, 'Petr', 11


CREATE TABLE #Table2 (ID_t1 INT, DATA INT)

INSERT INTO #Table2 (ID_t1, DATA)
 SELECT 1, 123 UNION
 SELECT 2, 555 UNION
 SELECT 1, 676


SELECT t1.ID, t1.Name, t1.Age, MIN(t2.DATA) DATA
FROM #Table1 t1
 LEFT JOIN #Table2 t2 ON t2.ID_t1 = t1.ID
GROUP BY t1.ID, t1.Name, t1.Age

DROP TABLE #Table1
DROP TABLE #Table2
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При включении двух модулей памяти в двух канальном режиме компьютер не включается. gotosha Техническая поддержка 7 30.11.2011 05:59
Выборка записей из таблиц формата dbf vyach Delphi 0 22.02.2011 12:03
Выборка из Excel Alexande Visual Basic 5 24.06.2008 09:16
Запрос на выборку одновременно из двух таблиц Cplushka SQL 2 10.06.2008 18:53
Запрос на "тытяжку" из двух таблиц na_tanke SQL 6 04.07.2007 10:30
Выборка в Hibernate 3test Java 0 11.12.2006 14:09
CONSTRAINT объединение двух таблиц igora112 Oracle 1 29.09.2005 18:38
Сравнение двух таблиц в разных файлах nik_vba Visual Basic 1 13.09.2005 23:40
Выборка в Excel imported_Hunter Visual Basic 2 10.05.2005 21:31
Нужна помощь в связывание двух таблиц по одинаковому полю Andrey_Y SQL 3 08.07.2004 18:01
Как осуществить выборку SELECT из двух таблиц Fet C++ Builder 4 22.04.2004 13:53
Выборка данных из нескольких таблиц Black Knight PHP 1 22.02.2004 01:36



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов