Ответ 1
Вы пытались использовать функцию concat()?
ON tableTwo.query = concat('category_id=',tableOne.category_id)
Мне нужно объединить строку с значением поля в запросе MySQL, чтобы LEFT JOIN две таблицы.
В первой таблице есть столбец с названием "category_id" с числовыми значениями, такими как 61, 78, 94 и т.д.
В таблице 2 есть столбец с именем "запрос", который ссылается на механизм маршрута запроса, и он имеет такие значения, как "product_id = 68", "category_id = 74", "manufacturer_id = 99" и т.д.
Поэтому в моем запросе мне нужно присоединиться к таблицам, когда когда-либо конкатенированная строка, полученная из заданной строки, и значение столбца "category_id" соответствует полю запроса.
В настоящее время моя инструкция SQL:
SELECT * FROM tableOne
LEFT JOIN tableTwo
ON tableTwo.query = 'category_id=' + tableOne.category_id
Я попытался использовать || оператора вместо оператора +, но все равно не повезло. Возможно ли это сделать в MySQL, или я тут же нажал на пистолет?
Вы пытались использовать функцию concat()?
ON tableTwo.query = concat('category_id=',tableOne.category_id)
SELECT ..., CONCAT( 'category_id=', tableOne.category_id) as query2 FROM tableOne
LEFT JOIN tableTwo
ON tableTwo.query = query2
Вот отличный ответ на этот вопрос:
SET sql_mode='PIPES_AS_CONCAT';
Подробнее здесь: fooobar.com/questions/108681/...
Здесь полный SQL:
SET sql_mode='PIPES_AS_CONCAT';
SELECT * FROM tableOne
LEFT JOIN tableTwo
ON tableTwo.query = 'category_id=' || tableOne.category_id;
MySQL использует CONCAT() для конкатенации строк
SELECT * FROM tableOne
LEFT JOIN tableTwo
ON tableTwo.query = CONCAT('category_id=', tableOne.category_id)