0

私の e コマース アプリケーションの一部として、この興味深い問題があり、解決しようとしています。

私には2つのことがあります。

  • カテゴリー
  • 製品

リレーショナル データベースの意味では、カテゴリは複数の製品を持つことができ、製品はカテゴリにのみ属することができます。

次に、特定の製品とカテゴリに関連付けられているクーポンの詳細を変更したい、この e コマース管理クーポン ページがあります。

変更ページには、次のフィールドがあります

クーポンの説明 - TextField タイプ クーポン価格 - TextField タイプ クーポンのパーセンテージ - TextField タイプ カテゴリ名 - ドロップダウンフィールド タイプ 製品名 - ドロップダウンフィールド タイプ

次のSQLクエリがあります。

$sql = "SELECT cp_description, cp_discountprice, cp_discountpercent, pd_name, cat_name
        FROM tbl_coupon inner join (tbl_product, tbl_category) on 
        (tbl_product.pd_id = tbl_coupon.pd_id AND     tbl_category.cat_id=tbl_product.cat_id)
        WHERE cp_id = $cpId";

この問題で本当に興味深いのは、pd_id フィールドと cat_id フィールドを SQL クエリに含めることができなかっためこれらのフィールドを検索して、事前入力されたときにドロップダウン フィールドで正しい選択された要素を取得する別の SQL コードでそれらを操作できることです。

これらのフィールドは「一意」ではないため、問題が発生する可能性があるため、select ステートメントでpd_nameまたはcat_nameを使用できません。

この問題に取り組むための最良の方法は何か考えている人はいますか? 私は、distinctキーワードがそのトリックを行うかもしれないと思っていました...しかし、そうではありません!

4

1 に答える 1

0

このようなクエリを使用できませんか?

SELECT 
    cp.cp_description, cp.cp_discountprice, cp.cp_discountpercent, 
    p.pd_id, p.pd_name, 
    cat.cat_id, cat.cat_name
FROM tbl_coupon cp 
INNER JOIN tbl_product p ON p.pd_id = cp.pd_id
INNER JOIN tbl_category cat ON p.cat_id = cat.cat_id 
WHERE cp_id = $cpId
于 2012-04-11T08:35:47.860 に答える