Есть 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
Ответить
|