任何MySQL子请求

时间:2012-08-01 11:23:45

标签: mysql request mysql-error-1064 any

我在MySQL中有几个表,我向他们提出了请求。在这个请求中我做了一个子请求,因为我在表t1中有字段f1,有时是NULL,有时是非NULL,如果它是NOT NULL,我想从表t1中选择字段f2,并在f1为NULL时忽略它。 字段f1存在于两个表中,它在t2中是唯一的,并且在t1中可能不是唯一的。

我做了以下子请求:

//[main request here]
IF (t1.f1 IS NOT NULL, (SELECT t2.f1 AND t2.f2 FROM t1, t2 WHERE t1.f1 = t2.f1),'')
//[main request continues here]

MySQL sais:Invalid query: Subquery returns more than 1 row

我知道我必须在子请求中包含任何东西,我尝试了不同的方法,但我仍然得到相同的错误或拼写错误。 可以请任何人帮助我吗?

1 个答案:

答案 0 :(得分:0)

问题是您的子选择是加入t1和t2,因此它不会返回唯一的行,因为t1有多个匹配的行。尝试:

IF (t1.f1 IS NOT NULL, (SELECT t2.f1 AND t2.f2 FROM t2 WHERE t1.f1 = t2.f1),'')