【问题标题】:Query 2 similar tables SQLITE查询2个相似表SQLITE
【发布时间】:2021-04-30 13:51:55
【问题描述】:

所以我的数据库中有 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

如果我想从 customers 中选择 everything,其中 age20,我会使用这个:

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, '20', 'trisha@trisha.trisha')

但我想从两个表中选择这个东西并将它们组合起来......

我应该使用什么查询命令来输出:

('John' '20' 'john@john.john')
('Mara', '20', 'mara@mara.mara')
('Trisha, '20', 'trisha@trisha.trisha')

【问题讨论】:

    标签: python sql python-3.x sqlite mysql-python


    【解决方案1】:

    您只需要一个UNION ALL 子句,例如

    extracting = mydb.execute("""
                               SELECT * 
                                 FROM
                                 (
                                  SELECT * FROM customers
                                  UNION ALL
                                  SELECT * FROM staff
                                 ) AS cs  
                                WHERE age = 20  
                              """)
    

    考虑到数据类型为数字,删除包含 age 列匹配值的引号。

    【讨论】:

    • 是的,确实有效。我在谷歌上找到了第 2 页,试图通过stackoverflow 上的一些其他人的问题找到这个+,但没有发现任何包含这个UNION ALL 的内容。非常感谢您的回复!
    猜你喜欢
    • 2011-05-11
    • 1970-01-01
    • 2021-12-13
    • 2021-06-02
    • 2021-09-27
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多