【问题标题】:Select data from 2 tables in mySQL, join it从mySQL中的2个表中选择数据,加入它
【发布时间】:2012-04-21 16:16:03
【问题描述】:

我需要从我的数据库中的 2 个表中选择数据 - cmets 和用户。这是这些表的结构:

cmets

评论ID |评论日期和时间 |图片ID |用户名 |评论

用户

用户ID |用户名

我需要选择两个表中的所有数据,将其加入到 userID 上,其中 imageID 应该等于$imageID。我尝试了以下SELECT 声明:

    return json_encode(select("
    SELECT
     commentDateAndTime,
     imageID,
     userID,
     COMMENT,
     username
   FROM users
    JOIN comments
    ON comments.userID = users.userID
   WHERE comments.imageID = $imageID
   GROUP BY comments.comment   
"));

但我没有收到任何数据。

有什么建议吗?

【问题讨论】:

  • 为什么需要group by?看起来你没有使用它。
  • 尝试删除 GROUP BY cmets.comment
  • @diEcho 是的,这行得通。我还将SELECT commentDateAndTime, imageID, userID, comment, username 更改为SELECT * 现在工作正常!谢谢!
  • @AlexAckerman 是的,谢谢,这有帮助!
  • @yAnTar 谢谢!成功了!

标签: php mysql select join json


【解决方案1】:

如果您需要所有结果,为什么还要使用 group by。

SELECT users.* , comments.*
FROM users JOIN comments ON comments.userID = users.userID 
WHERE comments.imageID = $imageID 

【讨论】:

    【解决方案2】:

    MySQL 执行自动连接(来自this page: “FROM [...] 子句指示要从中检索行的表或表。如果您命名多个表,则表示您正在执行连接")。

    另外,由于有两个 userID 列,因此您需要在表名之前指定哪一个列。

    所以你的查询可能是这样的:

    SELECT commentDateAndTime, imageID, users.userID AS userID, comment, username
    FROM comments, users
    WHERE comments.userID = users.userID AND comments.imageID = $imageID
    

    【讨论】:

      猜你喜欢
      • 2013-09-04
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多