Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Вопрос по SQL Добавлено: 25.08.04 08:32  

Автор вопроса:  astoro | ICQ: 649109 
Есть две таблицы
1. Cross
ID1 -> Data.ID
ID2 -> Data.ID
2. Data
ID
Name

Как мне сделать запрос, чтобы в результате в рекордсет попали соответствующие (по Cross) имена (две штуки) из Data?

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #1
Добавлено: 25.08.04 11:28
Надеюсь правильно понял твой вопрос.
Select ID1, t1.Name, ID2, t2.Name
FROM Cross INNER JOIN Data t1
   ON ID1 = t1.ID
INNER JOIN Data t2
   ON ID2 = t2.ID

Ответить

Номер ответа: 2
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #2 Добавлено: 25.08.04 13:13
:-(((
Ошибка синтаксиса в предложении FROM
:-(((
Если нужно поподробнее, то вот:
Data содержит записи (ID, Name)

1 , Иванов
2 , Петров
3 , Сидоров
4 , Сергеев
5 , Рабинович

А Cross содержит (ID1, ID2)
1 , 5
2 , 5
3 , 1
4 , 2

В результате запроса в рекордсете получается (должно получится) (допустим N1, N2):
Иванов , Рабинович
Петров , Рабинович
Сидоров , Иванов
Сергеев , Петров

Ответить

Номер ответа: 3
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #3
Добавлено: 25.08.04 14:01
Какая ошибка и какая база данных?
Брось сюда sql statment на котором получил ошибку.

Ответить

Номер ответа: 4
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #4 Добавлено: 25.08.04 14:22
SELECT ID1, t1.Name, ID2, t2.Name
FROM Cross INNER JOIN Data t1
ON ID1=t2.ID
INNER JOIN Data t2
ON ID2=t2.ID

ОШИБКА ТАКАЯ:
Ошибка синтаксиса (пропущен оператор) в выражении запроса:
'ID1=t2.ID INNER JOIN Data t2 ON ID2=t2.ID'

Ответить

Номер ответа: 5
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #5 Добавлено: 25.08.04 14:23
Кажется INNER JOIN Data t1 - так нельзя писать или я не прав?

Ответить

Номер ответа: 6
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #6
Добавлено: 25.08.04 14:25
astoro, какая база данных?

Ответить

Номер ответа: 7
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #7 Добавлено: 25.08.04 14:27
ACCESS подключена через DAO

Ответить

Номер ответа: 8
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #8
Добавлено: 25.08.04 14:51
Ну тогда пиши AS

SELECT ID1, t1.Name, ID2, t2.Name
FROM Cross INNER JOIN Data AS t1
ON ID1=t2.ID
INNER JOIN Data ASt2
ON ID2=t2.ID

Ответить

Номер ответа: 9
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #9 Добавлено: 25.08.04 14:52
НАШЕЛ НАШЕЛ НАШЕЛ!!!!!!!!! НУЖНО ИСПОЛЬЗОВАТЬ ПСЕВДОНИМЫ ТАБЛИЦ! СПАСИБО ЗА ПОМОЩЬ. >;)))
SELECT D1.Name AS Name1,
D2.Name AS Name2
FROM
Cross,
Data AS D1,
Data AS D2
WHERE
Cross.ID1 = D1.ID AND
Cross.ID2 = D2.ID

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам