Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2009, 15:22   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию запрос из 2-х таблиц

Здравствуйте.
Как осуществить следующее есть 2 таблицы к примеру
в базе есть 2 таблицы Поставщики и Товар.
В первой имеются поля Поставщик,Адрес,телефо
во второй Товар,Цена
Как сделать запрос чтоб в один DBGrid выводились поля Поставщик,Товар,Цена.
ЗАрание спасибо.
Lokos вне форума Ответить с цитированием
Старый 22.12.2009, 15:30   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

не как если у них общего поля нет.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 22.12.2009, 15:44   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
не как если у них общего поля нет.
раскажи про общее поле
Lokos вне форума Ответить с цитированием
Старый 22.12.2009, 15:48   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

В первой (table1) имеются поля id,Поставщик,Адрес,телефон
во второй (table2) id,Товар,Цена, Id_table1

запрос

select table1.Поставщик, table2.Товар, table2.Цена
from table1,table2
where table1.id=table2.Id_table1

как то так
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 22.12.2009, 16:01   #5
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
select table1.Поставщик, table2.Товар, table2.Цена
from table1,table2
where table1.id=table2.Id_table1
Старый синтаксис, не рекомендуется использывать. Лучше явно прописывать JOIN'ы.
Evgeniy26 вне форума Ответить с цитированием
Старый 22.12.2009, 16:03   #6
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
В первой (table1) имеются поля id,Поставщик,Адрес,телефон
во второй (table2) id,Товар,Цена, Id_table1

запрос

select table1.Поставщик, table2.Товар, table2.Цена
from table1,table2
where table1.id=table2.Id_table1

как то так
ну вроде все разумно и очень похоже на правду
Но смущает одна вещ
Код:
where table1.id=table2.Id_table1
зачем тут в канце приписано _table1 ?
Lokos вне форума Ответить с цитированием
Старый 22.12.2009, 16:10   #7
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Так более понятнее:
В первой (table1) имеются поля поставщикid,поставщик,адрес,телефон
во второй (table2) товарid,товар,цена, поствщикid

Код:
select п.поставщик, т.товар, т.цена
from table1 AS п 
         INNER JOIN 
       table2 AS т
ON п.поставщикid = т.поствщикid
Evgeniy26 вне форума Ответить с цитированием
Старый 22.12.2009, 21:49   #8
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Evgeniy26

объясните чем лучше ?? ? ?
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 22.12.2009, 22:51   #9
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

INNER JOIN, OUTER JOIN (SQL-92):
1)Более читабельнее.
2)SQL-92
Хотя, что-бы выяснить какой метод лучше стоит поэксперементировать с данным продуктом.
P.S Можно использовать Nested Loops, Merge, Hash. Очень аккуратно...
Где-то так в кратце...
Evgeniy26 вне форума Ответить с цитированием
Старый 23.12.2009, 00:55   #10
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Lokos Посмотреть сообщение
ну вроде все разумно и очень похоже на правду
Но смущает одна вещ
Код:
where table1.id=table2.Id_table1
зачем тут в канце приписано _table1 ?
Так как table1.id и table2.id - идентификаторы записи (которые могут не совпадать!!!!), то table2.ID_table1 - это указатель на конкретную запись в таблице 1.
Так что, все верно. Не пойму что Вас смущает (условие where переписано на JOIN см.выше, поэтому это не в счет)
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на выборку из нескольких таблиц bullvinkle Microsoft Office Access 9 11.04.2012 04:35
Запрос по выборке таблиц в Accesse. Droid БД в Delphi 3 25.11.2009 15:55
запрос из зараннее неизвестного колл - ва таблиц Valerra Помощь студентам 3 28.01.2009 11:02
SQL запрос из двух таблиц.(сложный) Miha87 БД в Delphi 5 10.11.2008 11:04
Через запрос перенести данные с 6 таблиц Таня84 БД в Delphi 5 22.03.2007 15:46