2011-11-25 40 views
2

我有3個表:paginas,滑塊,pages_header(包含頁面的ID +滑塊)陣列與一些以選中複選框根據逐日盯市

我需要得到所有的從頁面表頁面然後檢查paginas_slider表是否有指定的滑塊連接到它。我試圖在純粹的MySQL做到這一點,但我不知道這是甚至可能的。

我試圖使用是這樣的:

SELECT * 
FROM paginas 
LEFT JOIN pagina_slider ON paginas.id = pagina_slider.pagina 
WHERE pagina_slider.slider = '1' 

的問題是,這只是給出了具有ID滑塊頁「1」連接到它(非常有意義)。 我想要的是它吐出paginas表中的所有頁面,並且它會額外檢查它是否有滑塊連接到它。

誰能幫我這個?

+0

怎麼樣的人應該幫助你沒有一個單一的代碼位? –

回答

0

如果您不想限制結果,但仍希望添加條件,則可以使用IF爲您提供必要的數據。

在這種情況下,hasSlider將是1,如果它已經滑塊連接到它,否則返回0:

SELECT *, IF(pagina_slider.slider = '1', 1, 0) AS hasSlider 
FROM paginas 
LEFT JOIN pagina_slider ON paginas.id = pagina_slider.pagina 
+0

這個伎倆!感謝百萬<3 – Nick

+0

檢查此解決方案後,如果發現它不工作100%。例如:當數據庫中存在多個相同頁面的實例時,您將獲得該頁面的重複內容。我可以分組這些來隱藏這個,但這也意味着結果不防水。 – Nick

+0

@Nick如果是這樣,那麼推斷解決方案並不容易。你應該發佈你的模式。 –