我有一个使用 3 个表的 SQL SELECT 语句。我正在使用 INNER JOIN 来连接表,但是我遇到了一些问题,因为我希望连接条件基于的两列是不同的数据类型;一个是整数 - products 表的 id,可以在下面看到为 p.id。另一个是订单表中这些 id 的逗号分隔字符串。客户一次可以订购多个产品,因此产品 ID 存储为逗号分隔的列表。
这是我在 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 列表中?