MySQL синтаксическая ошибка при создании таблицы с данными из двух других таблиц - PullRequest
0 голосов
/ 05 мая 2020

Я создаю новую таблицу с данными из другой таблицы. Я хотел бы объединить значения из таблицы Income_Ledger, а также из таблицы Expenditure_Ledger с условием WHERE в новую таблицу.

Я могу успешно добавить значения, если использую только одну из таблиц, но я похоже, не может написать синтаксис SQL для выполнения ввода из обеих таблиц. т.е. AS SELECT, FROM, WHERE работает, если используется только одна из двух таблиц.

Спасибо за любую помощь

MySQL (ver 14.14 Distr 5.7.23)

# bank in for below gives strings of: B1 and B2
for bank in Bank_Account_Code:
    with engine.connect() as con:
        con.execute('''
        DROP TABLE IF EXISTS '''+bank+''';''')
        con.execute('''
        CREATE TABLE IF NOT EXISTS '''+bank+'''
        AS SELECT id,Date,CR
        FROM Income_Ledger
        WHERE DR_code="'''+bank+'''"

        AS SELECT id,Date,DR
        FROM Expenditure_Ledger
        WHERE CR_code="'''+bank+'''"

        ORDER BY Date
        ;''')

enter image description here

1 Ответ

1 голос
/ 05 мая 2020

Вы не можете просто выбрать две таблицы и поместить их в одну. В зависимости от того, как вы хотите объединить данные, вы можете либо СОЕДИНЯТЬ таблицы, либо использовать СОЕДИНЕНИЕ. Увидев CR_code в двух таблицах, UNION - лучший выбор в этой ситуации.

https://www.w3schools.com/sql/sql_union.asp https://www.w3schools.com/sql/sql_join.asp

...