我有一個來自不同日期的文本表。每個都由服務,變體以及頁面和子頁面ID進行索引。MYSQL如果不存在,選擇特定行或第一行
我需要獲取給定服務,頁面和子頁面的所有條目。即每個變體!但如果特定的特定子頁面不存在,我需要它爲該頁面獲取第一個子頁面,而不是該變體的任何內容。
這是我的代碼 -
SELECT * FROM frames f
LEFT JOIN varients v ON f.varient_id = v.varient_id AND f.service_id = v.service_id
ẀHERE f.service_id = :sid
AND f.frame_id = :fid
AND (f.subframe_id = :subid
OR f.subframe_id = (
select min(subframe_id) from frames ff
ẀHERE ff.service_id = f.service_id
AND ff.varient_id = f.varient_id AND ff.frame_id = f.frame_id
)
)
GROUP BY f.service_id, f.varient_id, f.frame_id
ORDER BY f.service_id, v.varient_date, f.frame_id, f.subframe_id
但經常不就是給人的最低,而不是特定的,即使在特定的值存在。我敢肯定,OR不是我所需要的..
我試過使用UNION作爲其他一些答案,但由於我想多個單一的結果,我似乎無法工作出來!
感謝您的任何幫助..
也許你可以使用http://sqlfiddle.com/給我們數據的例子? – kenfire
最好能夠在服務器端語言中應用編碼邏輯而不是複雜的查詢 –
謝謝,我之前沒有聽說過sqlfiddle。 http://sqlfiddle.com/#!9/faa2f4/2 – user2158583