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 テーブルには、customerid と dealid の 2 つの id 値が保持されます。値に格納されているログイン ユーザーの customerid をレンダリングする SQL コードを既に正常に作成しました$_customerid

平易な英語で、私がやろうとしていることは、次のような SQL ステートメントを作成することです。

  • $_customerid値と同じ行にある dealid を取得します
  • 上記の取引 ID を使用して、上記の ID の下の取引テーブルから取引情報をレンダリングします
  • レストラン情報を取得する 選択した取引 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

実際の顧客IDを@customeridに置き換える必要があります。

于 2013-02-20T17:59:58.767 に答える