从没有外键的多个表中选择数据?

时间:2019-02-23 09:21:53

标签: python sql flask sqlite

我的sqlite3文件中有这个当前的python代码:

Data = Cursor.execute("""
    SELECT Username, Password
    FROM PatientTable
    WHERE Username = '{}'
""".format(Username))
Data = Data.fetchall()

数据库中有多个表:PatientTableDoctorTableManagerTable。每个属性在第二列和第三列中分别具有UsernamePassword的属性。

问:我当前的代码仅从PatientTable中选择数据,但我需要从所有三个表中选择数据,并且确定每个数据项来自哪个表来自。

现在,我想我可以使用多个SQL语句来执行此操作,但这似乎过多。我曾考虑过使用JOIN,但没有外键-将数据库彼此关联的键。

谢谢。

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找UNION。您可以在每个查询中添加固定列,以区分结果集中的每个记录来自哪个表:

SELECT 'PatientTable' source_table, Username, Password 
FROM PatientTable 
WHERE Username = '{}'
UNION ALL SELECT 'DoctorTable' , Username, Password 
FROM DoctorTable 
WHERE Username = '{}'
UNION ALL SELECT 'ManagerTable', Username, Password 
FROM ManagerTable 
WHERE Username = '{}'