在Mysqli語句中存在LEFT JOIN的問題。我有兩張桌子,一張桌子上有各種各樣的事件。第二個表格包含該事件的所有圖像。使用變量(MYSQLI)複雜左連接
我要得到什麼:我想要得到與圖像計數該事件並上傳該事件的最後一個影像的最後8個事件退貨單。
問題:一個簡單的LEFT JOIN對此很好,但是這很麻煩......有時這些事件有多天。所以將兩個表連接在一起的一件事就是FOLDER字段。但是,如果超過一天,情況也會有所不同。這使得事件對比圖像更加困難。
視覺例如:
表:活動
Title Folder Days Added
-------------------------------------------
Event1 2015-EventA 1 20151001
Event2 2015-EventB 2 20150901
Event3 2015-EventC 3 20150801
表:圖像
File Folder Date
---------------------------------------
imgA1.jpg 2015-EventA 20150930
imgA2.jpg 2015-EventA 20151001
imgB1.jpg 2015-EventB-1 20150910
imgB2.jpg 2015-EventB-2 20150901
imgC1.jpg 2015-EventC-1 20150910
imgC2.jpg 2015-EventC-2 20151001
imgC3.jpg 2015-EventC-2 20150930
imgC4.jpg 2015-EventC-3 20150927
結果我要找的(記住它的採摘最後上傳的圖像該事件):
Title Folder Days File IMGCount IMGFolder
------------------------------------------------------------------------
Event 1 2015-EventA 1 imgA2.jpg 2 2015-EventA
Event 2 2015-EventB 2 imgB1.jpg 2 2015-EventB-1
Event 3 2015-EventC 3 imgC2.jpg 4 2015-EventC-2
我已經試過:
SELECT t1.*, t2.IMGCount, t2.File, T2.Folder AS IMGFolder
FROM Events as t1
LEFT JOIN (select count(File) AS IMGCount, Folder, File
FROM Images GROUP BY Folder ORDER BY Date DESC LIMIT 8)
AS t2
on t1.Folder LIKE t2.Folder
OR t1.Folder LIKE t2.Folder || '-1'
OR t1.Folder LIKE t2.Folder || '-2'
OR t1.Folder LIKE t2.Folder || '-3'
OR t1.Folder LIKE t2.Folder || '-4'
ORDER BY Added DESC LIMIT 8
這種近乎作品...但事件表重複所有匹配的第一個事件的信息...所以我得到這有正確的圖像表信息,但重複事件:
Title Folder Days File IMGCount IMGFolder
------------------------------------------------------------------------
Event 1 2015-EventA 1 imgA2.jpg 2 2015-EventA
Event 1 2015-EventA 1 imgB1.jpg 2 2015-EventB-1
Event 1 2015-EventA 1 imgC2.jpg 4 2015-EventC-2
我在做什麼錯?
我認爲DATE是字符串? –
是的,對於日期和添加 –