加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为什么mysqli离开join再返回1行?

发布时间:2020-12-13 16:59:32 所属栏目:PHP教程 来源:网络整理
导读:我有2个表:1)产品2)product_images,它的数据是这样的: products table :==============ProductID Title model_number-----------------------------------1 title1 1232 title2 1243 title3 1254 title4 1265 title5 127product_images==============pi_id
我有2个表:1)产品2)product_images,它的数据是这样的:

products table :
==============
ProductID   Title      model_number
-----------------------------------
1           title1     123
2           title2     124
3           title3     125
4           title4     126
5           title5     127

product_images
==============
pi_id    p_id   product_image
------------------------------
1        1      image1
2        2      image2
3        3      image3
4        4      image4
5        1      image1

所以如果我运行这个查询它会返回5行,这是正确的:

$q=mysqli_query($conn,"SELECT * FROM products");
echo $n=mysqli_num_rows($q); // return 5 rows

但是,如果我运行此查询,则返回6行,为什么?它应该显示5行!

$searchQuery =  mysqli_query($conn,"SELECT products.ProductID,products.Title,products.model_number,product_images.product_image FROM 
products LEFT JOIN product_images ON products.ProductID =  
product_images.p_id ");

$isExist =  mysqli_num_rows($searchQuery); // return 6 rows

你能告诉我为什么它会再返回1行,我该如何解决它?谢谢.

实际上我想用适当的图像显示所有产品.

解决方法

您使用过 LEFT JOIN.并且您有两条记录,其中p_id = 1;所以你有6行.

如果要使p_id唯一,请在查询中使用GROUP_BY.

写下您的查询如下: –

SELECT products.ProductID,product_images.product_image FROM 
products LEFT JOIN product_images ON products.ProductID =  
product_images.p_id GROUP BY product_images.p_id;

希望它能帮到你:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读