查询产生错误的结果

时间:2014-03-22 21:48:26

标签: python mysql sql flask

我们的查询旨在从两个单独的表中提取两个内容并加入它们。但是,在网页上显示信息后,它似乎只是从一个表中提取内容,或从两个表中提取信息,然后还显示另一个表中的信息,这些信息不应该被指定,因为只有两个表应该通过我们的查询访问。任何想法都错了吗?下面是代码:

  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个表的内容。 / p>

将python和Flask与MySQL一起使用。任何和所有的帮助表示赞赏!

编辑:我们尝试做的是从数据库中的两个随机表中获取信息,并让查询生成两个内容(内容是每个表中定义的列),然后可以显示在此信息所针对的网页。例如:从法律表中选择内容,从说法表中选择内容,将两者连接起来,然后在网页上显示加入的输出。我知道我们可以为此做两个单独的查询,但最好有一个单独的查询。

1 个答案:

答案 0 :(得分:0)

你在这里做什么并不清楚。您没有为要加入的表指定任何条件,因此您最终得到的是cartesian join:即tcol1的每一行都连接到tcol2的每一行。这无疑不是你想要的,但我不明白你想要什么,所以我无法帮助你解决它。