正しい結果を得るために比較する前に文字列を連結する必要がある場合に、このクエリを使用しようとしています。クエリは実行されていますが、結果が見つかりません。WHERE
問題は、句の「myname」を比較しようとするときだと思います。これに対する正しいクエリは何ですか?
SELECT *
FROM (SELECT CONCAT('tm_',name) AS myname FROM room) room, users
WHERE user_name = myname;
なぜだめですか
SELECT * FROM users,room where user_name=concat('tm_',name);
?
代わりにこれを試してください
SELECT *
FROM
(
SELECT CONCAT('tm_',name) AS myname
FROM room
) t
WHERE user_name = myname
次のようJOIN
に他のテーブルが必要な場合があります。users
SELECT *
FROM
(
SELECT CONCAT('tm_',name) AS myname
FROM room
) t
INNER JOIN users u ON ... --some join condition
WHERE user_name = myname
または:
SELECT *
FROM
(
SELECT CONCAT('tm_',name) AS myname
FROM room
) t, users
WHERE t.user_name = myname"