还有其他方法可以执行此查询吗?
$query = "SELECT * FROM produto, pt WHERE
produto.refPT = pt.ref AND
produto.refPT IN (SELECT idProduto FROM amb_prod WHERE idAmbiente='1');";
$result_set = mysql_query($query);
问题是我的localhost有MySQL版本5.1.30-community,但我的在线服务器有5.0.67社区的MySQL版本。
我认为只有当我尝试在在线服务器上运行时才会出现此错误的原因:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
答案 0 :(得分:1)
当您创建查看的精美视图时,它可以让您的工作更轻松,例如:
$query = "SELECT *
FROM produto, pt, amb_prod
WHERE produto.refPT = pt.ref
AND produto.refPT = amb_prod.idProduto
WHERE amb_prod.idAmbiente='1';";
$result_set = mysql_query($query);
答案 1 :(得分:0)
嗯,在测试系统上安装匹配版本的MySQL会很有意义,因此您可以更轻松地调试错误。
您也可以尝试这样的事情......
$query = "SELECT * FROM produto, pt, amb_prod WHERE
produto.refPT = pt.ref AND
produto.refPT = amb_prod.idProduto WHERE amb_prod.idAmbiente='1');";
$result_set = mysql_query($query);
答案 2 :(得分:0)
至少为了简化您的查询,您可以使用:
"Select * from produto,pt,amb_prod WHERE
produto.refPT = pt.ref AND
produto.refPT=amb_prod.idproduto AND
amb_prod.idAmbiente='1';"
虽然我建议选择字段而不是“*”。我也不得不想知道为什么你引用'1',那不是数字字段吗?
答案 3 :(得分:0)
最后摆脱分号,看看是否有帮助。
在某些桥接实现(将您的语言连接到MySQL服务器的事物)上,您的查询字符串实际上是两个查询:
SELECT *
FROM produto, pt
WHERE
produto.refPT = pt.ref AND
produto.refPT IN (SELECT idProduto
FROM amb_prod
WHERE idAmbiente='1')
和...
[Blank]
某些网桥可能会混淆要返回的结果集(SQL结果或空白查询)以及空白查询是否可接受。