我有2个表格(mysql),一个用于产品名称,另一个用于产品图像。
tblproducts-> id(int,pk),name(varchar)
tblphotos ---> id(int,pk),productid(int,fk),照片,订单
在tblphotos中,order字段是照片的显示顺序(1,2,3 ...)
每个产品最多可以有1张照片。我需要产品的第一张照片(订单= 1)
我需要的是tblproducts.id,tblproducts.name,tblphotos.photo(照片必须是订单1的那个)
我写了以下查询,但我的产品名称在重复
SELECT tblproducts.id,tblproducts.name, tblphotos.photo
FROM tblproducts
LEFT JOIN tblphotos on tblphotos.productid = tblproducts.id
还有一件事::我需要按升序排序
最佳答案
如果只需要第一张照片(顺序为1的照片),则需要在查询中指定:
SELECT
PR.id AS product_id,
PR.name,
PH.photo
FROM
Products PR
LEFT OUTER JOIN Photos PH ON
PH.product_id = PR.id AND
PH.`order` = 1
由于
order
可能是保留字,因此将其包含在MySQL的默认带引号的标识符中。不过,最好使用其他列名称。另外,我不能让自己写一个在表名前面带有“ tbl”的查询。