Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: СРОЧНО! Как объеденить? Добавлено: 12.06.06 21:57  

Автор вопроса:  Igor
Есть 3 таблицы
SQL:

ТАБЛИЦА `tbl_abit`
  `Gid` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT, ГЛАВНЫЙ ИДЕНТИФИКАТОР
  `CodePk` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' ,
  `RegNum` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  `_Spcl` tinyint(3) UNSIGNED NOT NULL DEFAULT '0',
  `Surname` char(30) ,
  `_InstArea` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Учреждение район',

ТАБЛИЦА `tbl_address` (
  `Code` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `Gid` smallint(5) UNSIGNED NOT NULL DEFAULT '0', ГЛАВНЫЙ ИДЕНТИФИКАТОР
  `_Dstr` tinyint(3) UNSIGNED NOT NULL DEFAULT '0',
  `PstInd` varchar(45) NOT NULL DEFAULT '',
  `_Area` tinyint(3) UNSIGNED NOT NULL DEFAULT '0',
  `Adrs` varchar(70) NOT NULL DEFAULT '',
  `_Stat` tinyint(3) UNSIGNED NOT NULL DEFAULT '0', COMMENT 'Район проживания'

СПРАВОЧНИК `sp_area` (
  `Code` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `Name` char(45) 'Название района'


Первые 2 таблицы объединяются по полю `Gid`. Не могу объеденить поля
`tbl_abit`.`_InstArea` из первой таблицы, и поле `tbl_address`.`_Area` с справочником областей `sp_area`.`Code`.

На данный момент:

SELECT ab.Gid, ab.CodePk, ab.RegNum,
ab._Spcl, s_spcl.Code, s_spcl.Name,
ab._Kurs,
ab.Surname,
ab._InstArea, s_area.Code, s_area.Name, ab.InstName,
adr.Gid, adr._Dstr, s_dstr.Code, s_dstr.Name, adr._Area, s_area.Code, s_area.Name,
adr._Stat, s_stat.Code, s_stat.Name, adr.PstInd, adr.Adrs

FROM (((((abiturient.tbl_abit AS ab
LEFT JOIN abiturient.sp_area AS s_area2 ON ab._InstArea=s_area2.Code)
LEFT JOIN abiturient.sp_spcl AS s_spcl ON ab._Spcl=s_spcl.Code)
LEFT JOIN abiturient.tbl_address AS adr ON ab.Gid=adr.Gid)
LEFT JOIN abiturient.sp_dstr AS s_dstr ON adr._Dstr=s_dstr.Code)
LEFT JOIN abiturient.sp_area AS s_area ON adr._area=s_area.Code)
LEFT JOIN abiturient.sp_stat AS s_stat ON adr._stat=s_stat.Code
ORDER BY RegNum;



Не работает равенство для: ab._InstArea=s_area.Code

Ответить

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

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



Вопросов: 6
Ответов: 12
 Профиль | | #1 Добавлено: 14.06.06 00:54
РЕШЕНИЕ:
SELECT ab.Gid, adr.Gid, ab.RegNum, ab.Surname, ab._InstArea, s_area.Code, s_area.Name,
adr._Area, s_area2.Code, s_area2.Name,
ab._Spcl, s_spcl.Code, s_spcl.Name
FROM
(((abiturient.tbl_abit ab NATURAL LEFT JOIN abiturient.tbl_address adr)
LEFT JOIN abiturient.sp_area AS s_area ON ab._InstArea=s_area.Code)
LEFT JOIN abiturient.sp_area AS s_area2 ON adr._Area=s_area2.Code)
LEFT JOIN abiturient.sp_spcl AS s_spcl ON ab._Spcl=s_spcl.Code;

Ответить

Страница: 1 |

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



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