MySQL从另一个表中获取最近的列

时间:2015-04-14 14:08:09

标签: mysql subquery multiple-columns

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

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

现在让最近的Axis到Corrdinate:

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

这样可行。但是我无法在子选择中选择两个列。我的想法是使用Subselect进行子选择,但是在子子选择中我无法访问主表的x坐标。 任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用CROSS JOIN而不是SubQuery

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