【问题标题】:MySQL get nearest column from another tableMySQL从另一个表中获取最近的列
【发布时间】:2015-04-14 14:08:09
【问题描述】:

我试图从另一个表中获取离我的主表列最近的列(轴)的标题。 示例:

Main table with coordinates: Name, x, y
Axis table: title, x, y

现在获取最接近坐标的轴:

SELECT main.*, 
(SELECT ABS(axis.x-main.x) as min ,axis.title FROM axis WHERE y IS NULL ORDER BY min ASC LIMIT 1) sub_x
FROM corridinates_main

这会奏效。但我不能在子选择中选择两列。我的想法是对子选择使用子选择,但在子子选择中我无法访问主表的 x 坐标。 任何想法如何做到这一点?

【问题讨论】:

  • 使用JOIN 而不是子查询
  • 您能举个例子吗?我不知道如何为此使用 Join。

标签: mysql subquery multiple-columns


【解决方案1】:

您可以使用 CROSS JOIN 代替子查询

SELECT main.*, Min, Title
FROM corridinates_main
Cross Join
(
    SELECT ABS(axis.x-main.x) as min, axis.title 
    FROM axis 
    WHERE y IS NULL 
    ORDER BY min ASC 
    LIMIT 1
) sub_x

【讨论】:

  • 感谢您的回答。但对我来说,这不起作用。我收到以下错误:“#1054 - '字段列表'中的未知列 'main.x'”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
相关资源
最近更新 更多