代码之家  ›  专栏  ›  技术社区  ›  Gabriel Solomon

mysql表连接选择

  •  0
  • Gabriel Solomon  · 技术社区  · 16 年前

    我有两张桌子:

    • 答案(id, id_topic id_user

    3 回复  |  直到 16 年前
        1
  •  1
  •   OMG Ponies    16 年前

    SELECT id, topic 
      FROM topics 
     WHERE id IN (SELECT id_topic 
                    FROM answers 
                    WHERE id_user = <USERID>)
    

    SELECT id, topic 
      FROM topics 
     WHERE EXISTS (SELECT * 
                     FROM answers 
                    WHERE id_user = topics.id)
    

        2
  •  0
  •   Bill Karwin    16 年前
    SELECT * FROM topics
    WHERE id IN (SELECT id_topic FROM answers WHERE id_user = ?);
    

    子查询是否多次返回某些值并不重要。外部查询中的任何给定行都将匹配或不匹配。

    正如E.F.Codd所说,“如果某事是真的,说两次并不能使它更真实。”

        3
  •  0
  •   dnagirl    16 年前

    如果您想查看用户回答了哪些主题,请尝试以下操作:

    SELECT t.title, a.id_user, COUNT(a.id)
    FROM topics t LEFT JOIN answers a
      ON (t.id=a.topic_id)
    GROUP BY t.title, a.id_user;
    

    JOIN LEFT JOIN .