2015-04-14 5 views
0

Im пытается получить название ближайшей колонны (оси) к моим основным таблицам Столбец из другой таблицы. Пример:MySQL получить ближайший столбец из другой таблицы

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

Теперь получение оси ближайшей к 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 для подзаголовка, но в подзапросе I я не могу получить доступ к x-координате основной таблицы. Любая идея, как это сделать?

+0

Используйте 'JOIN' вместо подзапроса –

+0

могли бы вы предоставить пример? Я не знаю, как я могу использовать Join для этого. – user2144280

ответ

0

Вы можете использовать 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 
+0

Спасибо за ваш ответ. Но для меня это не работает. Я получаю следующую ошибку: «# 1054 - Неизвестный столбец« main.x »в« списке полей »» – user2144280

Смежные вопросы