【发布时间】:2018-04-15 21:48:20
【问题描述】:
我有两个 MySQL 表: 产品
照片
然后我做 INNER JOIN
SELECT *
FROM product
INNER JOIN photo
ON product.productID = photo.productID
但我只需要每个唯一产品 ID 一个 raw
如果我尝试:
SELECT *
FROM product
INNER JOIN photo
ON product.productID = photo.productID
ORDER BY product.productID
返回错误
SELECT 列表的表达式 #38 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“photo.photoID”;这与 sql_mode=only_full_group_by 不兼容
问题是 photoID 列。每个产品的照片很少,但我需要每个产品只有第一张照片的表格。
我可以用 WHERE 之类的 MYSQL 工具来做吗?
谢谢!
【问题讨论】:
-
如果我尝试使用 GROUP BY,它会出错.. MySQL 并没有犯错.. 您使用 GROUP BY 的方式无效.. 此外 MySQL 还保护您免受无效结果的影响。
-
您有产品和照片 - 但您想要第一次会议?
-
请定义“第一次会议”。 SQL 表代表 无序 集。表或行子集中没有“第一”行。您需要一个指定顺序的列。
-
您使用的查询是什么?看来您只需要在 SELECT 子句中使用
MIN(photoID)。