Python 我的项目需要内部连接

Python 我的项目需要内部连接,python,mysql,flask,render,Python,Mysql,Flask,Render,我的内部连接有一些问题 请查看此代码 @app.route('/products', defaults={'page':1}) @app.route('/products/<int:store_id>', methods=['GET']) def productcheck(store_id): if 'loggedin' in session: cursor = mysql.connection.cursor(MySQLdb.cursors.DictCurso

我的内部连接有一些问题

请查看此代码

@app.route('/products', defaults={'page':1})
@app.route('/products/<int:store_id>', methods=['GET'])
def productcheck(store_id):
    if 'loggedin' in session:
        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
        cursor.execute("SELECT * FROM products WHERE store_id=%s", [store_id])
        data = cursor.fetchall()
        sql = "SELECT categories.category_title AS product_category FROM products INNER JOIN categories ON products.product_category = categories.id"
        cursor.execute(sql)
        myresult = cursor.fetchall()
        if data:
            return render_template('productstore.html', data=data, myresult=myresult)
        else:
            return 'Error loading #{id}'.format(id=id)
    else:
        return redirect(url_for('login'))

这是分类

+----------------------+------------------+------+-----+---------+----------------+
| Field                | Type             | Null | Key | Default | Extra          |
+----------------------+------------------+------+-----+---------+----------------+
| id                   | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| store_id             | int(11)          | YES  |     | NULL    |                |
| category_title       | varchar(200)     | YES  |     | NULL    |                |
| category_description | text             | YES  |     | NULL    |                |
| date                 | varchar(30)      | YES  |     | NULL    |                |
| slug                 | varchar(100)     | YES  |     |         |                |
+----------------------+------------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)

我自己修好的谢谢大家。 下面是更正后的代码

@app.route('/products/<int:store_id>', methods=['GET'])
def productcheck(store_id):
    if 'loggedin' in session:
        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
        cursor.execute("SELECT * FROM products LEFT JOIN categories ON products.product_category = categories.id WHERE products.store_id=%s", [store_id])
        data = cursor.fetchall()
        if data:
            return render_template('productstore.html', data=data)
        else:
            return 'Error loading #{id}'.format(id=id)
    else:
        return redirect(url_for('login'))

尝试使用内部联接反转您的方向,除了看起来还可以:

sql = "SELECT categories.category_title AS product_category" \
      "FROM categories" \
      "INNER JOIN products" \
      "ON products.product_category = categories.id"

只需添加表格的格式就可以了。我刚刚更新了它。当我渲染时,它将如何列出?因为我想列出,如果pruduct_categor是1,它会展示鞋子,如果它是2,它会展示t恤
@app.route('/products/<int:store_id>', methods=['GET'])
def productcheck(store_id):
    if 'loggedin' in session:
        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
        cursor.execute("SELECT * FROM products LEFT JOIN categories ON products.product_category = categories.id WHERE products.store_id=%s", [store_id])
        data = cursor.fetchall()
        if data:
            return render_template('productstore.html', data=data)
        else:
            return 'Error loading #{id}'.format(id=id)
    else:
        return redirect(url_for('login'))
sql = "SELECT categories.category_title AS product_category" \
      "FROM categories" \
      "INNER JOIN products" \
      "ON products.product_category = categories.id"