gpt4 book ai didi

mysql自定义排序依据

转载 作者:行者123 更新时间:2023-11-29 05:36:51 24 4
gpt4 key购买 nike

我有两张 table 。一个包含一些产品详细信息,另一个包含每个产品的各种照片。对于我的问题,仅使用以下字段:

tableA
id - prodName

tableB
id - prod_id - photoName

其中 tableA.id = tableB.prod_id

并非所有产品都有照片(换句话说,并非每个 tableA.id 都存在于 tableB 中)。我只对每个产品的第一张照片感兴趣(有照片)。

什么查询可以让我在我的页面上列出所有产品,首先显示有照片的产品,最后显示没有照片的产品?两组都必须根据产品名称按字母顺序排列。

到目前为止,我已经测试了以下内容,但没有 100% 成功

Using two queries:
Query 1st: SELECT prod_id FROM tableB WHERE photoName <> '' GROUP BY prod_id ORDER BY photo_name
this will give me (with some php scripting) a list (comma seperated) of all products with photos, sorted by photo name

Query 2: SELECT ..... FROM tableA WHERE ..... ORDER BY FIND_IN_SET(id, '$myList') DESC, prodName ASC

第二个查询将过滤有/没有照片的产品,但不按产品名称排序(因为原始列表按照片名称排序)。

有没有办法在单个查询中完成我想要的(如果可能)?

最佳答案

试试这个查询-

SELECT a.prodName FROM tableA a
LEFT JOIN tableB b
ON a.id = b.prod_id
GROUP BY
a.id
ORDER BY
IF(b.prod_id IS NULL, 1, 0), a.prodName;

关于mysql自定义排序依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com