Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder и базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Hellydeya
2 / 2 / 0
Регистрация: 02.02.2010
Сообщений: 29
#1

Вопрос по SQL Inner Join - C++ Builder БД

15.02.2010, 10:03. Просмотров 1636. Ответов 8
Метки нет (Все метки)

Подскажите как реализовать такой запрос:
У меня есть таблицаа "t"
к ней надо добавить таблицу "t1"
и таблицу "t2"
по условиям
для t1 (t.a=t1.a)
для t2 (t.b=t2.b)

пишу вот так:
select * from (select * from t inner join t1 on t.a=t1.a) inner join t2 on t.b=t2.b;

ругаетсо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2010, 10:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вопрос по SQL Inner Join (C++ Builder БД):

вопрос на счет SQL в билдере
select Akey, Title, Author, God, Izdatel, Grifmin, Agroup, Subgroup, Stilag,...

Люди, помогите! Вопрос по работе в Builder'e с таблицами SQL
Товарищи, помогите пожалуйста. Конечно, может я не по адресу, не знаю. Вопрос...

Join SQL
Привет, долго уже сижу, не могу разобратся, есть запрос в базу для получения...

Sql Join
Здравствуйте, помогите сделать JOIN запрос в базу имею таблицы tovar...

Delphi JOIN SQL
Здравствуйте, форумчане. Суть проблема в моих кривых мозгах. Есть 3 таблицы....

SQL и оператор JOIN
Помогите составить SQL запрос соединение 3 таблиц связанных по полю ...

8
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
15.02.2010, 10:22 #2
Вы бы хоть для приличия хоть какой-нить букварик по SQL почитали бы шо ли...
SQL
1
2
3
4
5
6
7
8
SELECT
  t.*,
  t1.*,
  t2.*
FROM
  t t
  JOIN t1 t1 ON (t1.a=t.a)
  JOIN t2 t2 ON (t2.b=t.b)
P.S. Это Вам такое M$ Access'овский визард такое родил?
0
Hellydeya
2 / 2 / 0
Регистрация: 02.02.2010
Сообщений: 29
15.02.2010, 10:46  [ТС] #3
всё равно у мну не получается

C++
1
ADOQuery1->SQL->Text = "SELECT t.*, t1.*, t2.* FROM t t JOIN t1 t1 ON (t1.a=t.a) JOIN t2 t2 ON (t2.b=t.b)";
Ошибка синтаксиса в предложении from

Добавлено через 3 минуты
Цитата Сообщение от Ex_Soft Посмотреть сообщение
P.S. Это Вам такое M$ Access'овский визард такое родил?
нет это мой не осведомлённый правильностью написаня запросов мозг породил
0
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
15.02.2010, 11:02 #4
/me думает: пора озвучивать СУБД.
Цитата Сообщение от Hellydeya Посмотреть сообщение
Ошибка синтаксиса в предложении from
Ставлю на M$ Access
0
Hellydeya
2 / 2 / 0
Регистрация: 02.02.2010
Сообщений: 29
15.02.2010, 11:05  [ТС] #5
Цитата Сообщение от Ex_Soft Посмотреть сообщение
/me думает: пора озвучивать СУБД.

Ставлю на M$ Access
Файлы DBF
дрова пользую Microsoft DBASE Driver
0
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
15.02.2010, 12:35 #6
Цитата Сообщение от Hellydeya Посмотреть сообщение
дрова пользую Microsoft DBASE Driver
Гм... Действительно
C++
1
2
3
4
5
6
7
8
9
   #if defined(TEST_VFP)
     Provider="vfpoledb.1";
     PathToDbf=ExcludeTrailingPathDelimiter(ExtractFilePath(Application->ExeName));
     ConnectionString="Data Source="+PathToDbf;
   #else
     Provider="Microsoft.Jet.OLEDB.4.0";
     PathToDbf=ExcludeTrailingPathDelimiter(ExtractFilePath(Application->ExeName));
     ConnectionString="Data Source="+PathToDbf+";Extended Properties=dBASE IV;User ID=;Password=";
   #endif
Под Microsoft OLE DB Provider for Visual FoxPro 9.0 - все сухо... А, вот, под Jet'ом - действительно имеет место указанная Вами выше ошибка... Потому как M$, как всегда, все делает по своему Ж8-/ сиречь через филейную часть:
Complex join conditions can be specified. The following example joins six tables:
SQL
1
2
3
4
5
6
7
8
9
SELECT
  Orders.OrderID,
  Employees.EmployeeID,
  Customers.CompanyName,
  [ORDER Details].ProductID,
  Products.ProductName,
  Categories.CategoryName
FROM
  Categories INNER JOIN  (Products INNER JOIN  (Employees INNER JOIN  (Customers INNER JOIN  (Orders INNER JOIN [ORDER Details]  ON Orders.OrderID = [ORDER Details].OrderID)  ON Customers.CustomerID = Orders.CustomerID)  ON Employees.EmployeeID = Orders.EmployeeID)  ON Products.ProductID = [ORDER Details].ProductID)  ON Categories.CategoryID = Products.CategoryID;
По сему:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   #if defined(TEST_VFP)
     Provider="vfpoledb.1";
     PathToDbf=ExcludeTrailingPathDelimiter(ExtractFilePath(Application->ExeName));
     ConnectionString="Data Source="+PathToDbf;
   #else
     Provider="Microsoft.Jet.OLEDB.4.0";
     PathToDbf=ExcludeTrailingPathDelimiter(ExtractFilePath(Application->ExeName));
     ConnectionString="Data Source="+PathToDbf+";Extended Properties=dBASE IV;User ID=;Password=";
   #endif
...
         ADOQueryDbf->SQL->Text=
         #if defined(TEST_VFP)
"\
select \
  t.*, \
  t1.*, \
  t2.* \
from \
  master t \
  join det_l_I t1 on (t1.Master_ID=t.ID) \
  join det_l_II t2 on (t2.Master_ID=t.ID) \
"
         #else
"\
select \
  t.*, \
  t1.*, \
  t2.* \
from \
  (master t inner join det_l_I t1 on t1.Master_ID=t.ID) \
  inner join det_l_II t2 on t2.Master_ID=t.ID \
"
         #endif
0
Hellydeya
2 / 2 / 0
Регистрация: 02.02.2010
Сообщений: 29
15.02.2010, 12:50  [ТС] #7
У меня сейчас мозг взорвётся



Добавлено через 1 минуту
А что за Master?
0
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
15.02.2010, 13:32 #8
Цитата Сообщение от Hellydeya Посмотреть сообщение
А что за Master?
/me думает: це якийсь капєць
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
         ADOQueryDbf->SQL->Text=
         #if defined(TEST_VFP)
"\
select \
  t.*, \
  t1.*, \
  t2.* \
from \
  t t \
  join t1 t1 on (t1.a=t.a) \
  join t2 t2 on (t2.b=t.b) \
"
         #else
"\
select \
  t.*, \
  t1.*, \
  t2.* \
from \
  (t t inner join t1 t1 on t1.a=t.a) \
  inner join t2 t2 on t2.b=t.b \
"
         #endif
         ;
1
Hellydeya
2 / 2 / 0
Регистрация: 02.02.2010
Сообщений: 29
15.02.2010, 14:31  [ТС] #9
Огромное спасибо Заработало
0
15.02.2010, 14:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2010, 14:31
Привет! Вот еще темы с решениями:

Синтаксис SQL - inner join
Работаю с Access, пытаюсь объединить несколько таблиц данный запрос выдает...

SQL запрос с OUTER JOIN
Есть две таблицы с одинаковыми полями. Надо выбрать все записи из первой...

SQL запрос с использованием JOIN
Здравствуйте! Есть три таблицы person, dept, post. dept и post имеют внешние...

SQL запрос SELECT с INNER JOIN редактирование
Что изменить в запросе, чтобы можно было редактировать данные? SELECT ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru