2013-02-20 2 views
0

Я не имею огромный опыт работы с SQL, так что я пытаюсь сформулировать запрос со следующими таблицами:3 таблица SQL Query

TABLE `customerdeal` (
    `id` , 
    `customerid` 
    `dealid` 
    PRIMARY KEY (`id`), 
    KEY `dealid` (`dealid`), 
    KEY `customerid` (`customerid`), 


    TABLE `deal` (
    `dealid`, 
    `dname` 
    `description` 
    `restaurantid` 
    PRIMARY KEY (`dealid`), 
    KEY `restaurantid` (`restaurantid`) 


    TABLE `restaurant` (
    `restaurantid` 
    `name` 
`username` 
`password` 
    PRIMARY KEY (`restaurantid`) 

В основном таблица Customerdeal держит 2 значения идентификатора - КодКлиент и dealid. Я уже успешно создал SQL-код, который будет отображать customerid зарегистрированного пользователя, который хранится в $_customerid.

На простом английском, что я пытаюсь сделать теперь создать оператор SQL, который будет:

  • Получить dealid, которые находятся в той же строке, значения
  • использование указанных dealid для придания этому $_customerid дело данных из таблицы сделки под указанными идентификаторами
  • получить инфо ресторан внешних ключей хау проводятся в выбранных dealid строк
  • -

Я снова и снова пытался разными способами, но никто из них не работает! Если кто-нибудь сможет мне помочь, я буду признателен! Благодаря!

+1

Вы заметили, что были взад и вперед, пытаясь разными способами. Выберите один из тех, которые, по вашему мнению, были самыми близкими и добавили его в ваш вопрос. Большинство захотят посмотреть, что вы пробовали – ethorn10

ответ

1

Я удивлен, что вы не объявили какие-либо типы для каких-либо столбцов.

Я не уверен, что понимаю, что вы пытаетесь сделать с вашим запросом. Не могли бы вы уточнить? Вы могли бы сделать что-то вроде этого:

select d.dname as dealname, d.description as dealinfo, 
    r.description as restaurantinfo, r.name as restaurant name 
    from deal d, restaurant r, customer c 
    where r.restaurantid = d.restaurantid, d.dealid = c.dealid, 
    c.customerid = 'whatever you want' 
+0

Абсолютное совершенство! Спасибо огромное! Ты спас мне много времени! :) – user2025934

0

Если я правильно понимаю вашу проблему, то следующее должно работать.

SELECT d.dname AS DealName, d.description AS DealDescription, r.name AS RestaurantName 
FROM customerdeal c 
INNER JOIN deal d on d.dealid = c.dealid 
INNER JOIN restaurant r on r.restaurantid = d.restaurantid 
WHERE c.customerid = @customerid 

Вам необходимо подставить @customerid для вашего фактического идентификатора клиента.