0

我希望有可能;在 SQL 查询中,切换到第二个表;如果某个条件成立,抓取相关的行数据,然后继续完成之前的查询?

我有一个表cms_navbar,如果列 == 1,它会被查询并拉回所有行visible。我要添加的是查询跳转到另一个表;cms_navbar_preview,如果$_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
4

1 回答 1

1

尝试这个:

  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),则从导航栏表中提取该字段。

希望这是您要实现的目标...

于 2013-08-05T14:50:28.233 回答