我有两张表。一个有一些产品细节,另一个持有每个产品的各种照片。 对于我的问题,只是使用了下列字段:mysql自定义订单
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
第二个查询将筛选有/没有照片的产品,而不是按照商品名称排序(因为原来的名单是由有序照片名称)。
有没有办法在单个查询中完成我想要的操作(如果可能的话)?
谢谢这个工作立刻 – andrew 2012-03-27 07:41:52