Придумываю что-то типа сравнения карт с услугами.Так вот такие параметры:есть список карт,например 1)Basic 2)Gold 3)Platinum у этих карт есть варианты например у Basic есть Basic 1 ,Basic 2,Basic 3 ну и соответсвенно у этих вариантов различный набор включенных услуг.Я создал 3 таблицы: 1) cards в которой храню названия карт ( 1)Basic 2)Gold 3)Platinum) и их описания,а вот со второй проблема я создал под каждую карту варианты тоесть таблицы Basic,Gold,Platinum и в них храню варианты (Basic 1 ,Basic 2,Basic 3) и третью таблицу cards_options соответственно в которой храню список доступных услуг по каждой карте в виде 0 1 тоесть доступно недоступно)Так вот суть проблемы в том что я немогу придумать каким образом сделать запрос ну или связать 1 список с названиями карт и вторым с списком с вариантами этих карт.
В идеале у меня получается вот такой SQL запрос для примера но как его со списками применить не знаю=(
SELECT * FROM `cards`,`basic`,`cards_options` WHERE cards.id=1 and base.id=cards_options.idПомогите пожалуйста.
Спустя 8 минут, 35 секунд (23.03.2012 - 16:31) Visman написал(а):
Цитата (MoonDevilzzz @ 23.03.2012 - 21:22) |
cards.id=1 and base.id=cards_options.id |
тут у тебя ни как не связаны таблица cards с таблицами base и cards_options.
Вообще, строишь запрос к основной таблице, а все справочники, которые в ней используются подключаешь через JOIN.
Спустя 5 минут, 45 секунд (23.03.2012 - 16:36) MoonDevilzzz написал(а):
SELECT * FROM `cards` INNER JOIN Gold,Platinum,Basic,cards_options примерно такое начало?а какое условием Where надо поставить чтобы например если выбран первый пункт из cards выводилось именно из таблицы Basic данные?
Спустя 8 минут, 11 секунд (23.03.2012 - 16:45) Visman написал(а):
SELECT c.поле1, c.поле2, g.поле1, p.поле1 FROM `cards` AS c
INNER JOIN `gold` AS g ON (условие связи gold с cards)
INNER JOIN `platinum` AS p ON (условие связи platinum с cards)
WHERE условие результирующей выборки
Спустя 3 часа, 50 минут, 45 секунд (23.03.2012 - 20:35) MoonDevilzzz написал(а):
Спасибо,завтра буду пробовать и отпишусь=)
Спустя 2 дня, 16 часов, 33 минуты, 5 секунд (26.03.2012 - 13:08) MoonDevilzzz написал(а):
Решил сделать по другому,удалил таблицы с вариантами (Basic 1 ,Basic 2,Basic 3)
а создал одну cards_var и в ней три поля id name card_var_id в таблице и для карт Basic выставил в поле card_var_id 1 для Gold 2 и.т.д и в итоге после выбора в первом списке пересылаю айди выбранного пункта тоесть если был выбран Basic то пересылаю еденицу b и в след список загружаются все пункты из таблицы card_var с сards_var_id=1.Не покидает ощущение что как-то через одно место-(((естьт еще идею у кого-нибудь как можно упростить?)
а создал одну cards_var и в ней три поля id name card_var_id в таблице и для карт Basic выставил в поле card_var_id 1 для Gold 2 и.т.д и в итоге после выбора в первом списке пересылаю айди выбранного пункта тоесть если был выбран Basic то пересылаю еденицу b и в след список загружаются все пункты из таблицы card_var с сards_var_id=1.Не покидает ощущение что как-то через одно место-(((естьт еще идею у кого-нибудь как можно упростить?)