0

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

这是我的查询:

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

它总是空的,因为句子有问题,应该如何?

4

3 回答 3

0

如果您的子查询返回多于一行,它将失败。确保它只返回一行。如果没有,试试这个。

SELECT nombre FROM clientes WHERE rfc IN (SELECT rfc FROM facturas WHERE rfc='".$numFactura."')
于 2013-10-25T16:36:48.793 回答
0

尝试这个;

$cliente = mysql_fetch_assoc($mySQL->query("SELECT nombre FROM clientes WHERE rfc=(SELECT rfc FROM facturas WHERE rfc='$numFactura')"));
if (empty($cliente))
于 2013-10-25T16:34:46.547 回答
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;
于 2013-10-25T16:41:57.807 回答