使用SQL在两个不同的表中的两列中搜索值?

时间:2017-04-05 11:30:21

标签: database python-2.7 sqlite

我想要一个代码在两个不同的SQL表中的两列中搜索一个值,

a = raw_input('Enter name here') 
cur.execute('SELECT phone FROM participants')
b = cur.fetchall()
if a in b:
    print "The name is already exist"

在这里我搜索了桌子(参与者)。我应该怎么做才能在两个表中搜索?

1 个答案:

答案 0 :(得分:0)

假设您要求SQL语句,则只需使用两个表中的select而不是一个表。要将所有内容保存在单个语句中,您可以使用UNION,例如:在这里:https://www.w3schools.com/sql/sql_union.asp

我们假设你有第二张桌子,在那里也有电话领域的朋友。

然后,您的SQL将是这样的:

SELECT phone FROM participants where name = <input name here>
UNION
SELECT phone FROM friends where name = <input name here>

如果这与您的案例相关,您可以在最后添加排序。 您还可以通过添加&#34;或&#34;来搜索每个表中的多个列。条款,像这样:

SELECT phone FROM participants where name = <your input here> or lastname = <your input here>
UNION
SELECT phone FROM friends where name = <your input here> or lastname = <your input here>

当然,你必须用适当的搜索字符串替换。 顺便说一句,你提供的代码不是搜索任何东西 - 它只是将表格中的所有手机转储到&#34; b&#34;变量,这可能是非常低效的,尤其是当表变大时。我强烈建议通过SQL进行搜索,然后从脚本中显示输出。