Прошу помочь с SQL запросом - JOIN для 3-х таблиц

artalex
На сайте с 08.12.2005
Offline
144
677

Приветствую всех! Прошу помочь с SQL запросом...

Постараюсь описать проблему на очень упрощенном примере...

Есть 3 таблицы: banks, cards, valutes

Структура banks (банки): `bank_id`, `bank_name` и т.д.

Структура valutes (валюты): `val_id`, `val_name` и т.д.

Структура cards (кредитные карты): `cc_id`, `cc_name`, `cc_bank`, `cc_valute` и т.д.

(связи: `cc_bank` -> `banks`.`bank_id`, `cc_valute` -> `valutes`.`val_id`).

Нужно получить от запроса:

`cc_id`, `cc_name`, `bank_name`, `val_name` и т.д.

Пытаюсь делать через JOIN. Но при попытке объединить с третьей таблицей - отдает ошибку #1054 - Unknown column.

Т.е. работает:

SELECT * FROM `cards` LEFT JOIN `banks` ON `cc_bank` = `bank_id`

И не идет дальше, как хотелось бы думать...

SELECT * FROM `cards` LEFT JOIN `banks` ON `cc_bank` = `bank_id` LEFT JOIN `valutes` ON `cc_valute` = `val_id`

Пытался менять порядок, использовать UNION, - пока не победил...

Прошу помочь, кто хорошо знаком с SQL

S
На сайте с 23.05.2004
Offline
315
#1

А точно JOIN нужен ?


select
b.bank_name, b.id, v.val_name, ... и так далее, что надо
from
banks b,
valutes v,
cards c
where
b.cc_bank=b.bank_id and c.cc_valute=v.val_id
Это просто подпись.
artalex
На сайте с 08.12.2005
Offline
144
#2

Stek, а то же самое, - ошибка та же - unknown column cc_valute

S
На сайте с 23.05.2004
Offline
315
#3

ну значит по другому он в базе называется.

Можно конечно попробовать c.cc_valute (изменил код), но не должно что то изменить, имена полей уникальны.

А база mysql ? Не уверен как с другими сработает, надо просто банально проверить , а если не работает, то документацию прочитать.

SI
На сайте с 03.12.2007
Offline
130
#4

SELECT cards.*, banks.bank_name, valutes.val_name

FROM cards, banks, valutes
WHERE banks.bank_id = cards.cc_bank
AND valutes.val_id = cards.cc_valute
-= Онлайн сервисы =-
artalex
На сайте с 08.12.2005
Offline
144
#5

Stek, Sigmo#ID, Вы правы. Благодарю. Разобрался...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий