PHP语句中的变量的连接

时间:2013-10-25 16:32:33

标签: php mysql

我正在尝试查询数据库中的唯一结果,句子(从SQL控制台询问)是正确的,我发送给数据库的参数是正确的,所以必须抛出结果。

这是我的疑问:

$cliente = mysql_fetch_assoc($mySQL->query("SELECT nombre FROM clientes WHERE rfc=(SELECT rfc FROM facturas WHERE rfc='".$numFactura."')"));
if (empty($cliente))

它总是空的,因为句子有问题,应该怎么样?

3 个答案:

答案 0 :(得分:0)

试试这个;

$cliente = mysql_fetch_assoc($mySQL->query("SELECT nombre FROM clientes WHERE rfc=(SELECT rfc FROM facturas WHERE rfc='$numFactura')"));
if (empty($cliente))

答案 1 :(得分:0)

如果子查询返回多行,则会失败。确保它只返回一行。如果没有,试试这个。

SELECT nombre FROM clientes WHERE rfc IN (SELECT rfc FROM facturas WHERE rfc='".$numFactura."')

答案 2 :(得分:0)

您的SQL查询使用子查询但您的子查询是多余的。

'SELECT rfc FROM facturas WHERE rfc='".$numFactura."''

这仅表示它将返回等于rfc

的所有$numFactura

您的SQL查询可以有效地:

SELECT nombre FROM clientes WHERE rfc = "$numFactura"

但是如果你想确保它在facturas表上有相应的条目,那么你的查询应该是:

SELECT c.nombre FROM clientes c JOIN facturas f USING (rfc) GROUP BY c.rfc;