我有这个查询,stackoverflow成员帮助了我
$raw_results = mysql_query("SELECT * FROM ProductTrans
WHERE (`ProductName` LIKE '%".$query."%') OR (`PalletSpace` LIKE '%".$query."%')") or die(mysql_error());
然后我添加了一个给我这个
的联接$raw_results = mysql_query("SELECT PalletSpaces.*, ProductTrans.*
FROM PalletSpaces INNER JOIN ProductTrans ON PalletSpaces.PalletSpaceID = ProductTrans.PalletSpace;
WHERE (`ProductTrans.ProductName` LIKE '%".$query."%') OR (`PalletSpaces.PalletSpace` LIKE '%".$query."%')") or die(mysql_error());
这给了我错误你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'WHERE(ProductTrans.ProductName
LIKE'%me%')或(PalletSpaces.PalletSpace
LI'在第3行附近)使用正确的语法
我做错了什么?
答案 0 :(得分:1)
SELECT s.*
, t.*
FROM PalletSpaces s
JOIN ProductTrans t
ON s.PalletSpaceID = t.PalletSpace
WHERE t.ProductName LIKE '%$query%' OR s.PalletSpace LIKE '%$query%';
答案 1 :(得分:0)
... paces.PalletSpaceID = ProductTrans.PalletSpace;
^----
分号终止查询。在它被视为完全独立/新查询之后的任何东西。由于PHP MySQL驱动程序禁止在单个query()
调用中进行多个查询,因此会出现语法错误。
答案 2 :(得分:0)
只需要在JOIN语句后删除分号:
SELECT PalletSpaces.*, ProductTrans.*
FROM PalletSpaces
INNER JOIN ProductTrans ON PalletSpaces.PalletSpaceID = ProductTrans.PalletSpace
WHERE (
{ProductTrans.ProductName {1}} {PalletSpaces.PalletSpace {1}}
答案 3 :(得分:0)
从您的代码中
FROM
PalletSpaces
INNER JOIN
ProductTrans ON PalletSpaces.PalletSpaceID = ProductTrans.PalletSpace;
WHERE
(`ProductTrans.ProductName` LIKE '%".$query."%')
OR (`PalletSpaces.PalletSpace` LIKE '%".$query."%')")
OR die(mysql_error());
这给了我错误你的SQL语法有错误;查看与
对应的手册在ProductTrans.PalletSpace
WHERE
之后删除分号