簡體   English   中英

MYSQL查詢具有設置條件的表,如果滿足第二個條件,則從另一個表中獲取一行並繼續

[英]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_navbarcms_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM