我有兩張表。一個有一些產品細節,另一個持有每個產品的各種照片。 對於我的問題,只是使用了下列字段: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