У меня есть оператор SQL SELECT, в котором я использую 3 таблицы. Я использую INNER JOINs, чтобы присоединиться к таблицам, однако я столкнулся с некоторой проблемой, потому что два из столбцов, на которые я хотел бы установить условие соединения, - это разные типы данных; Одним из них является целое число - идентификатор таблицы продуктов и можно увидеть ниже как p.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";
Возможно, я мог бы использовать Regex? в настоящее время список с разделителями-запятыми читается как «2,1,3» - однако количество символов не ограничено - так что мне нужно условие, чтобы проверить, находится ли мой идентификатор продукта (p.id) в этом списке o.product_id?
Спасибо за этот почтовый ящик, вы правы с одним для многих .. Мне просто нужна другая таблица для хранения этих деталей. Спасибо за вашу помощь по этому поводу :) –