3台SQL查询
问题描述:
我没有与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行 举行外键 -
我一直在来回尝试不同的方式,但他们都没有工作!如果有人能帮助我,我会很感激!谢谢!
答
我很惊讶你没有为任何列声明任何类型。
我不确定我是否理解你正在尝试处理你的查询。你能澄清吗?你可以这样做:
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
答
如果我正确理解你的问题,下面应该工作。
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。
你注意到你已经来回尝试不同的方式。选择你认为最接近的那个,并将其添加到你的问题中。大多数人会想看看你已经尝试过 – ethorn10 2013-02-20 17:58:42