0

作为我的电子商务应用程序的一部分,我遇到了一个有趣的问题,我一直在努力解决。

我有两件事。

  • 类别
  • 产品

在关系数据库意义上,一个类别可以有多个产品,一个产品只能属于一个类别。

然后,我有这个电子商务管理优惠券页面,我想在其中修改与特定产品和类别关联的优惠券详细信息。

在修改页面上,我有以下字段

优惠券描述 - 文本字段类型 优惠券价格 - 文本字段类型 优惠券百分比 - 文本字段类型 类别名称 - 下拉字段类型 产品名称 - 下拉字段类型

我有以下 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_idcat_id字段包含到 sql 查询中,因此我可以在另一个 sql 代码中操作它们,该代码将在预填充时查找这些字段以在下拉字段中检索正确的选定元素。

我不能在 select 语句中使用pd_namecat_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 回答