gpt4 book ai didi

php - 为什么 mysqli left join 返回 1 行?

转载 作者:可可西里 更新时间:2023-10-31 23:17:43 24 4
gpt4 key购买 nike

我有 2 个表:1) products 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,   
products.Title, products.model_number, product_images.product_image FROM
products LEFT JOIN product_images ON products.ProductID =
product_images.p_id GROUP BY product_images.p_id;

希望对你有帮助:)

关于php - 为什么 mysqli left join 返回 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35267519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com