[英]MYSQL Query a table with a set condition and if a 2nd conidtion is met grab a row(s) from another table and continue
我希望有可能; 在SQL查詢中,切換到第二個表; 如果滿足特定條件,則獲取相關的行數據,然后繼續完成先前的查詢?
我有一個表cms_navbar
,如果visible
的列== 1,它將被查詢並拉回所有行。我要添加的內容是查詢跳轉到另一個表; cms_navbar_preview
,如果$_GET['id_hash']
等於$_GET['id_hash']
中的hash
列, cms_navbar
從cms_navbar_preview
捕獲所有行,其中live_hash
== $_GET['id_hash']
,最后繼續遍歷cms_navbar
表中的其余行。
SELECT *
FROM cms_navbar
WHERE visible=1
AND parent=1
ORDER BY position ASC
抱歉,這很難理解我的意思。
CMS_NAVBAR表:
id | title | link | visible | position | parent | child | relation | hash
CMS_NAVBAR_PREVIEW表:
id | title | link | visible | position | parent | child | relation | live_hash | showcase_content
嘗試這個:
SELECT
IFNULL(nbp.id,nb.id) as ID,
IFNULL(nbp.title,nb.title) as TITLE,
etc....
FROM cms_navbar nb
LEFT JOIN cms_navbar_preview nbp ON nbp.live_hash= <parameter> AND nb.id=nbp.id
WHERE nb.visible=1
AND nb.parent=1
ORDER BY nb.position ASC
基本上,您可以根據條件加入預覽表。 如果找到匹配項,請從預覽表中拉出字段。 如果不是(即NULL),則從導航欄表中提取該字段。
希望這是您要實現的目標...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.