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

时间:2012-06-28 06:32:39

标签: mysql

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

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

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

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

用户join

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

答案 2 :(得分:0)

select * from products
where id in (select product_id from ProductImages)

答案 3 :(得分:0)

SELECT Products.* FROM Products
INNER JOIN ProductImages ON Products.id = ProductImages.id
and Products.Id = @ProductID // if required this condition