我有一个SQL SELECT语句,我在其中使用3个表。 我使用INNER JOIN来连接表,但是我遇到了一些问题,因为我希望连接有条件的两列是不同的数据类型; 一个是整数 - 产品表的id,可以在下面看到p.id。 另一个是这些ID在订单表中的逗号分隔的字符串。客户一次可以订购多个产品,因此产品ID将以逗号分隔列表的形式存储。MYSQL JOIN有条件检查整数对逗号分隔列表
这里是我多远与SQL得到:
"SELECT o.transaction_id, o.payment_status, o.payment_amount, o.product_id, o.currency, o.payment_method, o.payment_time, u.first_name, u.last_name, u.email, p.title, p.description, p.price
FROM orders AS o
INNER JOIN products AS p ON (NEED HELP HERE--> p.id IN o.product_id comma delimited list)
INNER JOIN users AS u ON (o.user_id = u.id)
WHERE user_id = '39'
ORDER BY payment_time DESC
LIMIT 1";
也许我可以使用正则表达式?目前逗号分隔的列表显示为'2,1,3' - 但是字符数量不受限制 - 所以我需要一个条件来检查我的产品ID(p.id)是否在o.product_id的列表中?
感谢您的这个芽,你是正确的一对多..我只需要另一个表来存储这些细节。感谢您对此的帮助:) –