Распечатка двух отдельных таблиц в один и тот же список - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь распечатать один список результатов из двух таблиц. Вот мои таблицы:

cursor.execute('''
CREATE TABLE IF NOT EXISTS measures(
rainID DATE PRIMARY KEY,
rain FLOAT (15,2) NOT NULL,
level_of_dam FLOAT (15,2) NOT NULL,
level_of_lochan FLOAT (15,2) NOT NULL);
''')
db.commit()

cursor.execute('''
CREATE TABLE IF NOT EXISTS turbine(
rainID DATE PRIMARY KEY,
pressure FLOAT (20,3) NOT NULL,
power FLOAT (20,3) NOT NULL,
deflector VARCHAR (5),
electricity FLOAT (20,3) NOT NULL);
''')
db.commit()

Я использую это, чтобы 'получить' меры:

def getMeasures():
    with sqlite3.connect ("rainfall123.db") as db:
        cursor.execute("SELECT * FROM measures,turbine")
        all_data = cursor.fetchall()
        all_data1 = (['Date','Rainfall','Dam','Lochan'])
        dash = '-' * 41
        for i in range(len(all_data)):
            if i == 0:
                print(dash)
                print('{:<10s}{:>10s}{:>5s}{:>14s}'.format(all_data1[0],all_data1[1],all_data1[2],all_data1[3]))
                print(dash)
            else:
                print('{:<12s}{:>4s}{:>12s}{:>12s}'.format(all_data[i][0],all_data[i][1],all_data[i][2],all_data[i][3]))

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

В идеале я хочу распечатать обе таблицы в одной печатной таблице.

1 Ответ

0 голосов
/ 14 ноября 2018

С помощью оператора SQL SELECT вы получите следующий результат

rainID | rain |  level_of_dam | level_of_lochan | rainID | pressure | power | deflector | electricity

Но с getMeasures() вы вызываете только первые 3 элемента в каждой строке, поэтому вы пропускаете данные и другие данные.

Я думаю, что вы хотите, чтобы получить соответствующие данные из ваших таблиц, где rainID равны. Так что вам нужно выполнить Внутреннее соединение .

cursor.execute("SELECT * FROM measures INNER JOIN turbine ON measures.rainID = turbine.rainID")

Теперь вам нужно вызвать все ячейки подряд. Что будет all_data[i][0] до all_data[i][8]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...