我甚至无法获得一个非常简单的Join语句。这是我的代码:
$query = "SELECT * FROM (Left) JOIN (Right) ON (Left.id=Right.id)";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
echo "query: " . $query . "<br>result: " . $result . "<br>num rows: " . $num_rows;
以下是它的输出:
警告:mysql_num_rows():提供的参数不是第16行的xxxx \ join.php中的有效MySQL结果资源
查询:SELECT * FROM(左)JOIN(右)ON(Left.id = Right.id)
结果:
num rows:
我在一个拥有不同主机的网站上使用完全相同的代码并且工作正常,但我无法在这个上工作。我之前从未使用过Join语句,所以我不确定我是做错了什么,或者因为我的主机已经禁用了某些东西而导致它可能无法正常工作。我在这个网站上使用Ipower。
答案 0 :(得分:0)
如果您的表名称是左和右(严重考虑重命名),则以下语法将起作用:
SELECT * FROM `Left` JOIN `Right` ON `Left`.id=`Right`.id
但是,我强烈建议重命名这些表,因为Left和Right是保留关键字,你将通过使用这些表名而不转义它们来遇到更多的语法问题。由于您使用Left / Right作为表名,因此当前编写的查询在语法上是不正确的。
我真的不确定你用这些括号做了什么。
(Left) JOIN (Right)
装置
LEFT JOIN RIGHT
这显然是胡说八道。你必须在JOIN条款中转义LEFT和RIGHT字样。
答案 1 :(得分:-2)
您可以尝试在“加入”之前添加“内部”。
这将是我的第一个猜测 - 理由 - 它实际上是一个内部联接。
第二个猜测是重写如下。
SELECT * FROM(左),(右) 其中Left.id = Right.id
完全从SQL中删除join关键字。
猜测'join'关键字会导致问题。