[英]MySQL query nested query
我正在尝试在MySQL(phpmyadmin)和通过PHP上运行嵌套查询,并且两者都会导致相同的输出,这是不正确的。
注意:由于项目的敏感性,表名已被剪切
SELECT * FROM `table1` WHERE ID="SELECT `field1` FROM `table2` WHERE ID=1"
返回零行,尽管每个查询单独给出如下的有效输出
SELECT `field1` FROM `table2` WHERE ID=1
提供所需的输出,此输出在主查询的第一部分中使用时也提供所需的输出。 请帮忙。
不要将其用引号引起来。 而是将其括在括号中:
SELECT * FROM `table1` WHERE ID=(SELECT `field1` FROM `table2` WHERE ID=1)
如果期望子查询有多行,请使用WHERE ID IN (SELECT...)
代替WHERE ID=(SELECT...)
使用JOIN
可能会获得更好的性能:
SELECT table1.*
FROM
table1 JOIN table2 ON table1.ID = table2.field1
WHERE table1.ID = 1
您的嵌套查询是错误的,它应如下所示:
SELECT * FROM `table1` WHERE ID in (SELECT `field1` FROM `table2` WHERE ID=1)
在您的情况下,您正在将table1.ID与包含第二个查询的字符串进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.