Как сравнить столбец из таблицы 1 с другим столбцом в таблице 2? - PullRequest
1 голос
/ 19 марта 2019

Я новичок в SQLITE3, а также в Python. Я полный новичок в SQLite. Я не очень понимаю. Я сейчас учусь на ходу для моего проекта. Я работаю над проектом, в котором у меня есть одна база данных с около 20 таблицами внутри. Одна таблица предназначена для ввода пользователем, а другие таблицы предварительно загружены со значениями. Как я могу сравнить и сопоставить, какие значения, которые находятся в предварительно загруженной таблице с таблицей пользователя ?? Например:

Users Table: 
Barcode:      Item: 
1234          milk
4321          cheese
5678          butter
8765          water
9876          sugar

Pre-Loaded Table: 
Barcode:       Availability:
1234               1
5678               1
9876               1
1111               1

Теперь я хочу иметь возможность сравнивать каждую строку в Предварительно загруженной таблице с каждой строкой в ​​Таблице пользователей. Они оба имеют общий столбец штрих-кода, чтобы иметь возможность сравнивать В результате во время процесса запроса он должен проверять каждую строку: 1234 - молоко - 1 (эти столбцы равны) 5678 - масло - 1 (эти столбцы равны) 9876 - сахар - 1 (эти столбцы равны) 1100 - - 1 (этот штрих-код отсутствует в таблице пользователей)

, поэтому, когда штрих-код, в данном случае 1100, отсутствует в таблице пользователей, код должен напечатать: у вас нет всех элементов для таблицы с предварительной загрузкой. Как я могу получить код для этого?

до сих пор у меня есть: этот код, кстати, работает.

import sqlite3 as sq



connect = sq.connect('Food_Data.db')
con = connect.cursor()

sql = ("SELECT Users_Food.Barcode, Users_Food.Item, Recipe1.Ham_Swiss_Omelet FROM Users_Food INNER JOIN Recipe1 ON Users_Food.Barcode = Recipe1.Barcode WHERE Recipe1.Ham_Swiss_Omelet = '1'")
con.execute(sql)
data = con.fetchall()
print("You can make: Ham Swiss Omelet")
formatted_row = '{:<10} {:<9} {:>9} '
print(formatted_row.format("Barcode", "Ingredients", "Availability"))
for row in data:
    print(formatted_row.format(*row))
    #print (row[:])
    #connect.commit()

Он печатает:

You can make: Ham Swiss Omelet
Barcode    Ingredients Availability 
9130849874 butter            1 
2870896881 eggs              1 
5501066727 water             1 
1765023029 salt              1 
9118188735 pepper            1 
4087256674 ham               1 
3009527296 cheese            1 

Код SQLite:

sql = ("SELECT Users_Food.Barcode, Users_Food.Item, Recipe1.Ham_Swiss_Omelet FROM Users_Food INNER JOIN Recipe1 ON Users_Food.Barcode = Recipe1.Barcode WHERE Recipe1.Ham_Swiss_Omelet = '1'")

Он объединяет две таблицы с общим штрих-кодом и соответствующими названиями продуктов и их доступностью. Однако, если одно из значений штрих-кода отсутствует в таблице Pre-Loaded, когда я сравниваю, как я могу приступить к кодированию, чтобы узнать, что его там нет, и при этом отображать, что общего между этими двумя таблицами? Это все равно что проверять идентичность таблиц.

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