Mysql 从存在外键表记录的表中选择1行

Mysql 从存在外键表记录的表中选择1行,mysql,Mysql,我有两个表,Products和ProductImages,Products和ProductImages之间有一对多的关系。我正在尝试对Products表进行查询,条件是结果只包含ProductImages表中具有匹配记录的行 Products ---------- id (PK) ProductImages --------------- id (PK) product_id (FK to Products) 我唯一可以使用它的方法是使用子查询,但肯定有更好/更有效的方法。userjoin

我有两个表,Products和ProductImages,Products和ProductImages之间有一对多的关系。我正在尝试对Products表进行查询,条件是结果只包含ProductImages表中具有匹配记录的行

Products
----------
id (PK)

ProductImages
---------------
id (PK)
product_id (FK to Products)

我唯一可以使用它的方法是使用子查询,但肯定有更好/更有效的方法。

user
join

SELECT p.* FROM Products AS p
INNER JOIN ProductImages AS pi ON p.id = pi.product_id
GROUP BY p.id
SELECT * FROM Products INNER JOIN ProductImage  on 
Products.id  = ProductImage.product_id 

用户
加入

SELECT * FROM Products INNER JOIN ProductImage  on 
Products.id  = ProductImage.product_id 

哪一排?任何最小的身份证,最大的身份证还是什么?不相关,真的。。。查询有更多的条件,但这些条件工作得很好,只是我试图将结果限制为productimages表中有记录的那些条件。哪一行?任何最小的身份证,最大的身份证还是什么?不相关,真的。。。查询有更多的条件,但这些条件工作得很好,只是我试图将结果限制在productimages表中有记录的那些条件。我对此也很好奇,因为在连接上有点模糊(我永远都不知道不同的条件)
右连接
在大多数情况下的性能并不比
内部连接
好我也很好奇,在连接上有点模糊(我永远不会对不同的连接掉以轻心)
右连接
在大多数情况下的性能并不比
内部连接
好,但这正是我试图避免的子查询。谢谢,但这正是我试图避免的子查询。它不是Products.id=ProductImages.product_id上的
吗?它不是Products.id=ProductImages.product_id
上的
吗?
SELECT Products.* FROM Products
INNER JOIN ProductImages ON Products.id = ProductImages.id
and Products.Id = @ProductID // if required this condition