Django查询从表中选择X,其中Y = Z

我还很难清楚地理解 Django 进行查询的方式。


我有两个表:


表一:


+----+-----+----+

| id |code |name|

+----+-----+----+

表 B:


+----+----+

| id |name|

+----+----+

的值name这两个表的可以等于(或不)。我需要做的是code通过比较两个表的值来获取表 A 列的值,name如果表 B 与任何行中的表 A 匹配。


例子:


表一:


+----+----+----+

| id |code|name|

+----+----+----+

| 4  | A1 |John|

+----+----+----+

表 B:


+----+----+

| id |name|

+----+----+

| 96 |John|

+----+----+

因此,通过比较John(B) 和John(A),我需要A1返回,因为它code是与表 A 匹配的同一行中的结果。


总之,我需要一个 Django 代码来执行查询:


a_name = 'John'


SELECT code FROM Table_A WHERE name = a_name

考虑到我只知道表 B 的值,因此我无法code通过表 A获得的值name。


潇湘沐
浏览 149回答 3
3回答

月关宝盒

你的表是假设名称A和B分别则:try:    obj = A.objects.get(name='John')    if B.objects.filter(name='John').exists():        print obj.code # found a match and now print code.      except:    pass 

四季花海

让我们假设TableA和TableB是 Django 模型。然后,您的查询可能如下所示:a_name = 'John'it_matches_on_b = ( Table_B                   .objects                   .filter(  name = a_name )                   .exists()                  )fist_a = ( Table_A            .objects            .filter(  name = a_name )            .first()          )your_code = fist_a.code if it_matches_on_b and fist_a != None else None我不注释代码,因为它是不言自明的。但是,如果您有评论,请在评论中写下问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python