Как объеденить?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yager
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 02.04.2006 (Вс) 1:56
Откуда: Ukraine

Как объеденить?

Сообщение Yager » 12.06.2006 (Пн) 20:39

Есть 3 таблицы
Код: Выделить всё

ТАБЛИЦА `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

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 13.06.2006 (Вт) 11:11

что это за база такая :?:

Yager
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 02.04.2006 (Вс) 1:56
Откуда: Ukraine

РЕШЕНИЕ:

Сообщение Yager » 13.06.2006 (Вт) 23:58

РЕШЕНИЕ:
Код: Выделить всё

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;


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 14

    TopList