我们的查询旨在从两个单独的表中提取两个内容并加入它们。但是,在网页上显示信息后,它似乎只是从一个表中提取内容,或从两个表中提取信息,然后还显示另一个表中的信息,这些信息不应该被指定,因为只有两个表应该通过我们的查询访问。任何想法都错了吗?下面是代码:
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一起使用。任何和所有的帮助表示赞赏!
编辑:我们尝试做的是从数据库中的两个随机表中获取信息,并让查询生成两个内容(内容是每个表中定义的列),然后可以显示在此信息所针对的网页。例如:从法律表中选择内容,从说法表中选择内容,将两者连接起来,然后在网页上显示加入的输出。我知道我们可以为此做两个单独的查询,但最好有一个单独的查询。
答案 0 :(得分:0)
你在这里做什么并不清楚。您没有为要加入的表指定任何条件,因此您最终得到的是cartesian join:即tcol1的每一行都连接到tcol2的每一行。这无疑不是你想要的,但我不明白你想要什么,所以我无法帮助你解决它。