问题描述
所以我的数据库中有 2 个表。
staff:
name age mail
John 20 john@john.john
Robert 25 robert@robert.robert
customers:
name age mail
Bob 21 bob@bob.bob
Mara 20 mara@mara.mara
Trisha 20 trisha@trisha.trisha
Melina 23 melina@melina.melina
如果我想从客户中选择所有,其中年龄是20,我使用这个:
extracting = mydb.execute("SELECT * FROM customers WHERE age = '20'")
20s_users = extracting.fetchall()
for i in 20s_users:
print(i)
python中的输出是
('Mara','20','mara@mara.mara')
('Trisha,'trisha@trisha.trisha')
但我想从两个表中选择这个东西并将它们组合起来......
('John' '20' 'john@john.john')
('Mara','trisha@trisha.trisha')
解决方法
您只需要一个 UNION ALL
子句,例如
extracting = mydb.execute("""
SELECT *
FROM
(
SELECT * FROM customers
UNION ALL
SELECT * FROM staff
) AS cs
WHERE age = 20
""")
其中包含 age
列匹配值的引号被删除,考虑到数据类型为数字。