[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SQL Запрос из 3х таблиц
Castr0
Есть 3 таблицы: clan_data, characters и castle

Требуется выбрать значения из clan_data

clan_data.clan_name
clan_data.clan_level
clan_data.reputation_score
clan_data.hasCastle
clan_data.leader_Id


Заменить clan_data.hasCastle на castle.name по совпадению clan_data.hasCastle=castle.id

Заменить clan_data.leader_Id на characters.char_name по совпадению clan_data.leader_Id=characters.Obj_id

Пробовал и так и эдак, опыта пока не хватает. Прошу помочь.



Спустя 17 минут, 38 секунд (10.12.2010 - 12:24) linker написал(а):
Какие связи между таблицами?

Спустя 15 минут, 17 секунд (10.12.2010 - 12:39) Castr0 написал(а):
Цитата
Какие связи между таблицами?

clan_data.hasCastle = castle.id
clan_data.leader_Id = characters.Obj_id

Спустя 3 минуты, 46 секунд (10.12.2010 - 12:43) Castr0 написал(а):
Нуу, объясню словами:

clan_data - информация о кланах
characters - информация о персонажах
castle - информация о замках

У каждого клана есть лидер, но в таблице clan_data содержится лишь его ID, записанный как leader_Id, нужно взять имя лидера из characters по совпадению clan_data.leader_Id = characters.Obj_id, то есть мы из таблицы просто берем имя лидера (characters.char_name).

Так же и с замками:
в clan_data есть лишь ID замка, записанный в поле hasCastle, имя же хочу взять по совпадению clan_data.hasCastle = castle.id из таблицы castle (как вы уже догадались castle.name)

Спустя 6 минут, 16 секунд (10.12.2010 - 12:49) linker написал(а):
SELECT `c`.`name`, `ch`.`char_name` FROM `clan_data` AS `cl`
LEFT JOIN `castle` AS `c` ON `c`.`id` = `cl`.`hasCastle`
LEFT JOIN `characters` AS `ch` ON `ch`.`Obj_id` = `cl`.`leader_Id`

Спустя 1 час, 1 минута, 57 секунд (10.12.2010 - 13:51) Castr0 написал(а):
linker
по прежнему, не выбирает значений... может я не так объяснил...


Спустя 57 минут, 58 секунд (10.12.2010 - 14:49) Self написал(а):
SELECT `cd`.`clan_name`, `cd`.`clan_level`, `cd`.`reputation_score`, `c`.`name`, `ch`.`char_name`
FROM `clan_data` AS `cd`
LEFT JOIN `castle` AS `c` ON `cd`.`hasCastle` = `c`.`id`
LEFT JOIN `characters` AS `ch` ON `cd`.`leader_Id` = `ch`.`Obj_id`;

Спустя 51 минута, 56 секунд (10.12.2010 - 15:41) Castr0 написал(а):
Self
ОГРОМНОЕ спасибо)) всё работает!

Спустя 14 минут, 57 секунд (10.12.2010 - 15:56) Sanchopansa написал(а):
Мдааа.. Злая БД у ЛА2 smile.gif сам когдато парился %)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.