2つのテーブルをLEFT JOINするために、MySQLクエリでフィールド値と文字列を連結する必要があります。
表1には、「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';
詳細はこちら: https://stackoverflow.com/a/24777235/4120319
完全な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)