代码之家  ›  专栏  ›  技术社区  ›  Jase Whatson

是否可以不使用视图而使用子查询或其他

  •  0
  • Jase Whatson  · 技术社区  · 16 年前
    CREATE VIEW myView AS  SELECT *
    FROM `ce_userbadges`
    WHERE ceub_userid =85;
    
    SELECT *
    FROM ce_badge
    LEFT JOIN myView ON ceb_id = ceub_badgeid;
    

    因此,它必须选择用户85拥有的所有徽章以及他们没有的徽章(因此是左加入)。

    我尝试过这个,但是它在连接后过滤用户ID

    SELECT *  FROM ce_userbadges
    right join ce_badge on ceub_badgeid = ceb_id
    WHERE ceub_userid = 85
    
    2 回复  |  直到 16 年前
        1
  •  4
  •   Wrikken    16 年前
    SELECT *  FROM ce_badge
    LEFT JOIN ce_userbadges
    ON ceub_badgeid = ceb_id AND ceub_userid = 85
    
        2
  •  1
  •   Guffa    16 年前

    SELECT *
    FROM ce_badge
    LEFT JOIN (
      SELECT *
      FROM `ce_userbadges`
      WHERE ceub_userid = 85
    ) x ON ceb_id = ceub_badgeid;