0

我对 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 值——一个 customerid 和一个 dealid。我已经成功创建了一个 SQL 代码,它将呈现存储在一个$_customerid值中的登录用户的 customerid。

用简单的英语,我现在要做的是创建一个 SQL 语句,它将:

  • $_customerid获取与值在同一行的dealid
  • 使用所述 dealid 从所述 ID 下的交易表中呈现交易信息
  • 获取餐厅信息如何在选定的交易行中保存外键
  • -

我一直在尝试不同的方法,但没有一个有效!如果有人可以帮助我,我将不胜感激!谢谢!

4

2 回答 2

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'
于 2013-02-20T18:00:17.430 回答
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 替换为您的实际客户 ID。

于 2013-02-20T17:59:58.767 回答