56

2 つのテーブルを LEFT JOIN するために、MySQL クエリで文字列とフィールド値を連結する必要があります。

テーブル 1 には、61、78、94 などの数値を含む「category_id」という列があります。

表 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でこれを行うことは可能ですか、それともここで銃を飛ばしましたか?

4

4 に答える 4

102

concat()関数を使ってみましたか?

ON tableTwo.query = concat('category_id=',tableOne.category_id)
于 2013-10-09T02:01:48.633 に答える
9

これに対する素晴らしい答えは次のとおりです。

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;
于 2016-05-10T18:51:55.780 に答える