显然,SQL查询初学者。在
所以我有3个数据表:账户,车主,车辆。在
这三个变量通过一个公共变量“User_Name”联系在一起。在
我想从这三个表中获取用户名与我的搜索变量匹配的所有项。因此,如果我搜索用户名为“Mike”的用户,则会显示用户名为“Mike”的三个表中的所有项目。在
我有一个使用常规“JOIN”的查询,但是如何更改它以使用搜索变量从所有表中选择与该变量匹配的所有查询?在
cursor.execute("SELECT * FROM Account JOIN Owner ON(Account.User_Name = Owner.User_Name) JOIN Vehicle ON(Account.User_Name = Vehicle.User_Name)")
我看过其他关于“从多个表中选择”的堆栈线程,但是它们都只从2个表中选择,而从3个表中选择的线程没有我想要的变量匹配。在
所以简而言之:
搜索三个表并获取公共列变量与搜索字符串匹配的所有行。在
由于您的标记表示Python,我将使用Python显示答案,假设
search_user
变量包含我们要搜索的用户名:如果我们只提取SQL并以更易读的形式格式化它,事情就更明显了:
^{pr2}$上面的查询将过滤表
Account
中包含搜索的User_Name
的所有记录。联接将匹配具有匹配联接条件的其他表中的记录。在请注意,如果您没有与任何表中的搜索值匹配的}的记录。结果将没有
User_Name
,那么结果中将不会显示任何记录。例如,在表Account
中有一个User_Name = 'Joe'
的记录,但是在表Vehicle
或'Owner'
中没有{'Joe'
的记录。在相关问题 更多 >
编程相关推荐