Таблицы, запрашиваемые с помощью SQL и Sqlalchemy, имеют одинаковые имена столбцов - PullRequest
0 голосов
/ 02 августа 2020

Я запрашиваю множество разных таблиц в базе данных mysql с помощью sqlalchemy и sql кода запроса.

Моя проблема прямо сейчас заключается в переименовании некоторых из соединяемых столбцов. Все запросы поступают в один фрейм данных.

SELECT *
FROM original

LEFT JOIN table1 
    on original.id = table1.t1key

LEFT JOIN table2 
    on original.id = table2.t2key

LEFT JOIN table3
    on original.id = table3.t3key;

Все, что я действительно хочу получить из этих таблиц, - это один столбец, добавленный к моему запросу. В каждой таблице есть столбец с тем же именем. Мой подход к использованию псевдонима был следующим:

table1.columnchange AS 'table1columnchange'
table2.columnchange AS 'table2columnchange'
table3.columnchange AS 'table3columnchange'

Но различные способы, которые я пытался реализовать, заканчиваются досадными ошибками.

Я запрашиваю около 20 разных таблицы также, поэтому использование SELECT * в начале, пока inneficient, идеально для простоты.

Результатом, который я ищу, является фрейм данных, в котором есть все нужные мне столбцы (которые я Я пытаюсь затем отфильтровать и построить моделирование с помощью python для). Я нормально управляю запросом через sqlalchemy в pandas, псевдоним - это то, что меня сейчас огорчает.

Заранее спасибо,

1 Ответ

1 голос
/ 02 августа 2020

Вы можете использовать вложенные запросы:

SELECT
 original.column1 as somename,
 table1.column1 as somename1,
 table2.column1 as somename2
FROM
 (SELECT
    column1
 FROM
    original
 ) original
 LEFT JOIN (
    SELECT 
        column1
    FROM
        table1
 ) table1 ON original.id = table1.t1key
 LEFT JOIN (
    SELECT 
        column1
    FROM
        table2
 ) table2 ON original.id = table2.t2key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...