2012-09-26 35 views
0

我想使用这个查询,我需要在比较前连接字符串以获得正确的结果。查询正在运行,但未找到任何结果。我相信问题是当我尝试比较WHERE条款中的“myname”时。任何想法是什么正确的查询呢?Mysql使用SELECT CONCAT结果作为条件在相同的查询

SELECT * 
FROM (SELECT CONCAT('tm_',name) AS myname FROM room) room, users 
WHERE user_name = myname; 
+0

您总是可以使用'HAVING'子句来约束聚合数据。 –

回答

1

为什么不是

SELECT * FROM users,room where user_name=concat('tm_',name); 

+0

这么简单,如此明显......但我试图让路径变得复杂:)非常感谢! – Adry

0

试试这个

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" 
+0

非常感谢您的建议,它不会返回任何结果。我仍然认为这是WHERE子句有罪的名字。幸运的是我们得到了解决方案。 – Adry

相关问题