2

ここに私のデータサンプルがあります:

製品
--------------------------------
| | product_id PK | 商品名 |
--------------------------------
| | FRT1 | りんご |
| | FRT2 | オレンジ |
| | TXT1 | リボン |
--------------------------------

パッケージ
-------------------------
| | package_id PK | 価格 |
-------------------------
| | P001 | 1000 |
| | P002 | 1500 |
| | P003 | 1000 |
-------------------------

package_detail
----------------------------------
| | package_id FK | product_id FK |
----------------------------------
| | P001 | FRT1 |
| | P002 | FRT1 |
| | P002 | FRT2 |
| | P003 | FRT2 |
----------------------------------

検索のキーは product_name であるため、「Apple」を検索すると、結果は次のようになります。

-------------------------------------------
| | package_id | 価格 | num_of_package_dtl |
-------------------------------------------
| | P001 | 1000 | 1 |
| | P002 | 1500 | 2 |
-------------------------------------------

参加するのが苦手なのですが、誰か質問を手伝ってくれませんか? よろしくお願いします〜

4

2 に答える 2

3
SELECT  b.package_id, c.price, d.totalCount
FROM    product a
        INNER JOIN package_detail b 
            ON a.product_ID = b.product_ID
        INNER JOIN package c
            ON b.package_ID = c.package_ID
        INNER JOIN 
        (
          SELECT package_id, COUNT(*) totalCount
          FROM package_detail
          GROUP BY  package_id
        ) d ON d.package_ID = b.package_ID
WHERE a.product_name = 'apple'

SQLFiddleデモ

于 2012-10-24T03:19:21.297 に答える
0

このようなもの:

pd.package_id、p.price、count(*) を package_detail から num_of_package_dtl として選択 pd join package p on p.package_id = pd.package_id join Product pt on pt.product_id = pd.product_id where pd.product_name = 'Apple' group by pd.package_id、p.price

于 2012-10-24T03:25:22.687 に答える