根据另一个表上的相关csv id从表中获取行

时间:2013-06-10 19:17:24

标签: php mysql inner-join

我一直在运行一个mysql查询来获取基于FIND_IN_SET的所有行($ bannerpageid,bf_relatedid)

$ bannerpageid是在每个页面顶部声明的php变量。

banner_frames

  bf_ID  bf_relatedID   bf_content
  1      1,2,3,4        content
  2      2,4,6,8,10     content
  3      1,3,5,7,9      content
  ...

所以$ bannerpageid = 3,它会从banner_frames表返回第1行和第3行

它有效,但感觉有点倒退,我觉得如果在单独的表标题页表中声明相关的bf_ID会更好。从长远来看,它会使相关的id更容易管理。

banner_page

  bp_ID  bp_relatedID
  1      1,2,3,4
  2      2,4,6,8,10
  3      1,3,5,7,9
  ...

banner_frames

  bf_ID  bf_content
  1      content
  2      content
  3      content
  ...

这次$ bannerpageid与banner_page表中的bp_ID有关,所以如果$ bannerpageid = 3,它将从banner_frames表中返回第1行和第3行

我尝试编写mysql查询以基于内部联接在集合中查找,但我无法正确执行查询。所以我有点难过。

如果有人有任何建议,我会非常感激

由于

1 个答案:

答案 0 :(得分:0)

基于FIND_IN_SET的原始MySQL代码是什么?

尝试:

 SELECT banner_frames.bf_content FROM banner_frames JOIN banner_page ON (banner_page.bp_ID = banner_frames.bf_ID) WHERE FIND_IN_SET($bannerpageid, banner_page.bp_relatedID)