开发者社区 问答 正文

MySQL表联接用于带循环的php动态视图

-1

Table name: acc_type and it's structure id image_1 image_3 1 1.jpg 2.jpg 2 3.jpg 4.jpg 3 5.jpg 6.jpg

Table name: Products and it's structure id_product id_category_default acc_type 1 20 1 2 22 2 3 23 3 4 24 2 5 25 1

$sql = mysql_query("SELECT * FROM pproducts WHERE id_category_default='$id_category_default' ORDER BY id_product DESC 50"); $dynamicList = ''; $productCount = mysql_num_rows($sql); if ($productCount > 0) { while($row = mysql_fetch_array($sql)){ $id_product = $row["id_product"]; $id_category_default = $row["id_category_default"]; $acc_type = $row["acc_type"]; $dynamicList .=''; }else{ $dynamicList = "We have no products listed in our store yet"; }

在这里,我想从acc_type表中获得单独的image_1和image_3,以从产品表中获得单独的product_id。我该怎么办?请帮忙。

展开
收起
社区秘书 2019-12-09 15:25:27 598 分享
分享
版权
举报
阿里云 AI 助理回答

要从acc_type表中获取与每个产品对应的image_1image_3,您需要在查询中加入一个JOIN操作来关联Products表和acc_type表。基于您提供的表格结构,这里是一个示例SQL查询,展示了如何实现这一需求:

SELECT 
    p.id_product, 
    a.image_1, 
    a.image_3
FROM 
    Products p
INNER JOIN 
    acc_type a ON p.acc_type = a.id
WHERE 
    p.id_category_default = '$id_category_default'
ORDER BY 
    p.id_product DESC
LIMIT 50;

在这个查询中: - 我们使用INNER JOIN来连接Products(别名为p)和acc_type(别名为a)两个表,基于它们的匹配字段acc_type(在Products表中)和id(在acc_type表中)。 - SELECT语句选择了我们感兴趣的列:id_productimage_1image_3。 - WHERE子句限制了结果集,只包括那些id_category_default等于指定值的记录。 - ORDER BY p.id_product DESC确保结果按照id_product降序排列。 - LIMIT 50限制返回的结果数量为50条。

请记得将'$id_category_default'替换为您实际需要的类别默认ID值,并且要注意,这个示例假设您的数据库连接和执行环境已经正确设置。另外,考虑到安全性和最佳实践,建议使用参数化查询或预处理语句来防止SQL注入攻击,特别是在处理用户输入时。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答