来自子查询的mysql多个字段

标签 mysql sql subquery

SELECT 
  (SELECT date FROM forums WHERE topic_id=f.id OR id=f.id ORDER BY id DESC LIMIT 1) as last_reply, 
  f.*, p.id as pid, p.name FROM forums f 
      INNER JOIN players p ON p.id = f.author 
  WHERE f.topic_id=0 ORDER BY f.id DESC

在子查询中,我不仅要返回date 字段,还要返回author 字段。我该怎么做?

看过类似的帖子,但无法将其应用到我的帖子中。

最佳答案

我会这样做:

SELECT 
  (SELECT date FROM forums WHERE topic_id=f.id OR id=f.id ORDER BY id DESC LIMIT 1) as last_reply,
  (SELECT author FROM forums WHERE topic_id=f.id OR id=f.id ORDER BY id DESC LIMIT 1) as last_author,
  f.*, p.id as pid, p.name FROM forums f 
      INNER JOIN players p ON p.id = f.author 
  WHERE f.topic_id=0 ORDER BY f.id DESC

我实际上会再次重复子查询

关于来自子查询的mysql多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10067070/

相关文章:

mysql - 使用having表达式连接多个表

mysql - 当我尝试在多对多关联表上设置 2 个外键时,为什么会收到此错误消息? "Foreign key constraint is incorrectly formed"

mysql - 对三个表使用连接

mysql - 根据表 B 中的值从表 A 中选择值?

mysql - 在 IFNULL 内连接

MySQL查询优化

mysql - 使用内连接、左连接或右连接来连接 2 个表

sql - 减去两个子查询

mysql - 如何在 MySQL 中重用大查询

mysql - ERROR 1822 (HY000) : Failed to add the foreign key constraint. 缺少约束索引