我有2个表(mysql),一个用于产品名称,另一个用于产品图像。
tblproducts - > id(int,pk),name(varchar)
tblphotos ---> id(int,pk),productid(int,fk),photo,order
在tblphotos中,订单字段是照片的显示顺序(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
还有一件事::我需要按升序对订单进行排序
答案 0 :(得分:3)
如果您只想要第一张照片(订单= 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”的查询。
答案 1 :(得分:0)
试试这个:
SELECT tblproducts.id,tblproducts.name, tblphotos.photo
FROM tblproducts LEFT JOIN tblphotos on tblphotos.productid = tblproducts.id
and tblphotos.order=1
答案 2 :(得分:-1)
我认为这对你有用
SELECT tblproducts.id, tblproducts.name, tblphotos.photo
FROM tblproducts
LEFT JOIN tblphotos on tblphotos.productid = tblproducts.id
and tblphotos.order=1;