mysql选择查询以预填充下拉字段

时间:2012-04-11 08:28:44

标签: php mysql sql

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

我有两件事。

  • 分类
  • 产品

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

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

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

优惠券说明 - TextField类型 优惠券价格 - TextField类型 优惠券百分比 - TextField类型 类别名称 - 下拉字段类型 产品名称 - Dropdownfield类型

我有以下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 关键字可以解决这个问题......但事实并非如此!

1 个答案:

答案 0 :(得分: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