Страница: 1 |
Страница: 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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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