产生错误结果的查询

2024-06-26 08:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的查询设计为从两个单独的表中提取两个内容并将它们连接起来。但是,在网页上显示信息时,似乎只是从一个表中提取内容,或者从两个表中提取信息,然后还显示另一个表中不应该指定的信息,因为我们的查询只能访问两个表。有什么问题吗?代码如下:

  randnum = random.randint(1,4)                                                                                                                              
  randnum2 = random.randint(1,4)                                                                                                                             
  trivia == 'Combo-Trivia!'                                                                                                                                  
  if randnum == 1:                                                                                                                                           
    tcol = 'laws'                                                                                                                                            
  elif randnum == 2:                                                                                                                                         
    tcol = 'trivia'                                                                                                                                          
  elif randnum == 3:                                                                                                                                         
    tcol = 'sayings'                                                                                                                                         
  else:                                                                                                                                                      
    tcol = 'fortuneCookies'                                                                                                                                  
  if randnum2 == 1:                                                                                                                                          
    tcol2 = 'laws'                                                                                                                                           
  elif randnum2 == 2:                                                                                                                                        
    tcol2 = 'trivia'                                                                                                                                         
  elif randnum2 == 3:                                                                                                                                        
    tcol2 = 'sayings'                                                                                                                                        
  else:                                                                                                                                                      
    tcol2 = 'fortuneCookies'                                                                                                                                 
  cur.execute('select ' +tcol +'.content,'+ tcol2 +'.content from '+tcol+' JOIN '+tcol2+' order by rand() limit 1')                                          
  rows = cur.fetchall()                                                                                                                                      
  print rows                                                                                                                                                 
  return render_template('mashdisplay.html', trivia = trivia, rows = rows) 

我意识到它有可能会尝试对同一个表进行两次排序,但如果不出现错误,它要么只显示一个表的内容,要么显示3个表的内容。你知道吗

在MySQL中使用python和Flask。感谢您的帮助!你知道吗

编辑:我们要做的是从数据库中的两个随机表中获取信息,并让查询生成两段内容(内容是每个表中定义的一列),然后这些内容可以显示在该信息指向的网页上。例如:从法律表中选择内容,从谚语表中选择内容,将两者合并,然后将合并的输出显示在网页上。我认识到,我们可以为此做两个单独的查询,但是最好有一个单独的查询。你知道吗


Tags: 信息网页内容ifrandomrowsrandintelif
1条回答
网友
1楼 · 发布于 2024-06-26 08:37:41

一点也不清楚你在这里干什么。您没有为要连接的表指定任何条件,因此最终得到的是一个cartesian join:即tcol1的每一行都连接到tcol2的每一行。那肯定不是你想要的,但我不明白你想要什么,所以我不能帮你解决它。你知道吗

相关问题 更多 >