Я унаследовал некоторый старый код SQL со следующим фрагментом (я анонимно для простоты).SQL Join Table vs. Select
CREATE EXTERNAL TABLE dim_abc (user_id int)
CREATE TABLE dim_foo AS
SELECT user_id,
...
FROM my_table a
JOIN (SELECT * FROM dim_abc) b
ON (a.user_id = b.user_id)
Вместо того, чтобы ...
FROM my_table a
JOIN dim_abc b
ON (a.user_id = b.user_id)
Любая идея, почему предыдущий разработчик сделал бы ВЫБРАТЬ внутри JOIN?
** Код - это улей.
Посмотрите на разницу двух утверждений. Создают ли они разные таблицы? Только я могу думать о том, что subselect может подавлять параметры определения таблицы, которые разработчик не хотел наследовать в новой таблице. –
Многоточие немного путает вещи. Его трудно сказать, если они делают рекурсию, или если это два разных оператора, разделенных эллипсисом. Не могли бы вы опубликовать весь код? – paqogomez
Хорошая статья SO, посвященная этому http://stackoverflow.com/questions/7194547/nested-select-statment-in-mysql-join – WorkSmarter