2013-02-20 52 views
0

我沒有與SQL巨大的經驗,所以我試圖配製具有以下表的查詢:3臺SQL查詢

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個ID值 - 一個客戶ID和dealid。我已經成功創建了一個SQL代碼,它將呈現正在存儲在$_customerid值中的登錄用戶的客戶端。

在簡單的英語我想要現在做創建一個SQL語句,這將:

  • 獲取屬於同一行中的$_customerid
  • 使用說dealid呈現的dealid從交易表處理方式下稱IDS
  • 拿到餐廳信息怎麼樣了正在所選dealid行
  • 舉行外鍵 -

我一直在來回嘗試不同的方式,但他們都沒有工作!如果有人能幫助我,我會很感激!謝謝!

+1

你注意到你已經來回嘗試不同的方式。選擇你認爲最接近的那個,並將其添加到你的問題中。大多數人會想看看你已經嘗試過 – ethorn10 2013-02-20 17:58:42

回答

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 2013-02-20 18:07:55

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 

您需要用您的實際客戶ID替換@customerid。