我正在尝试查询数据库中的唯一结果,句子(从SQL控制台询问)是正确的,我发送给数据库的参数是正确的,所以必须抛出结果。
这是我的疑问:
$cliente = mysql_fetch_assoc($mySQL->query("SELECT nombre FROM clientes WHERE rfc=(SELECT rfc FROM facturas WHERE rfc='".$numFactura."')"));
if (empty($cliente))
它总是空的,因为句子有问题,应该怎么样?
答案 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;