我收到了以下查询:
$sql = "SELECT `scanners`.`KordNo`, `scanners`.`BundleNumber`
FROM `scanners`, `TWOrder`, `Stock`
INNER JOIN `TWORDER` ON `scanners`.`KordNo` = `TWOrder`.`KOrdNo`
AND `scanners`.`Date` = '" . $date . "'
INNER JOIN `Stock` ON `TWOrder`.`Product` =`Stock`.`ProductCode`
AND `Stock`.`ProductGroup` NOT BETWEEN 400 AND 650
AND `scanners`.`Scanner` IN (
ORDER BY `scanners`.`KordNo` ASC";
foreach($scanner as $x)
{$sql .= $x . ",";}
$sql .= "0);";
// And query the database
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
$return[] = $row;
}
当我在php上回应sql我的管理员时我得到的错误不是唯一的表/别名库存;
有人可以建议吗?答案 0 :(得分:2)
由于您使用的是显式JOIN,因此请将其他两个表从FROM子句中删除。
...
FROM `scanners`
INNER JOIN `TWORDER` ON `scanners`.`KordNo` = `TWOrder`.`KOrdNo`
...
答案 1 :(得分:0)
第2行你有......
FROM `scanners`, `TWOrder`, `Stock`
然后你有一些INNER JOINs到TWOrder和Stock。
,
和JOIN
),这是混乱的。坚持JOIN
如果你真的需要在一个查询中多次包含这些表,你需要给它们别名,这样它们就可以相互分离。
但我认为这可能是一个错误,第2行应该只是
FROM `scanners`
然后,我也不确定你是如何编译的。您有IN (
,然后是ORDER BY子句,您可以在其中附加值列表。您应该在ORDER BY之前附加列表,然后在完成循环后附加ORDER BY。