拜托,我需要帮助!
无论我把这个条款放在哪里:WHERE romaneios_detalhes.id_romaneio ='。$ idr。' 它总是返回一个语法错误...我尝试使用和不使用“table_name。”,在我的语句的所有句子之前和之后,使用和不使用逗号...没有任何作用,我确信解决方案非常简单...
什么是正确的地方或正确的方式来写这个?
$sql3 = 'SELECT
produtos_linhas.linha AS `COUNT(linha)`,
produtos_tipos.tipo AS `COUNT(tipo)`,
COUNT(romaneios_detalhes.quantidade) AS `COUNT(quantidade)`
FROM romaneios_detalhes
WHERE romaneios_detalhes.id_romaneio = '.$idr.'
INNER JOIN produtos ON romaneios_detalhes.codigo = produtos.codigo
INNER JOIN produtos_linhas ON produtos.id_linha = produtos_linhas.id
INNER JOIN produtos_tipos ON produtos.id_tipo = produtos_tipos.id
GROUP BY produtos_linhas.linha, produtos_tipos.tipo ';
echo '<p>'.$sql3.'</p>';
/* OUTPUT OF THIS ECHO:
SELECT produtos_linhas.linha AS `COUNT(linha)`, produtos_tipos.tipo AS `COUNT(tipo)`, COUNT(romaneios_detalhes.quantidade) AS `COUNT(quantidade)` FROM romaneios_detalhes WHERE romaneios_detalhes.id_romaneio = 3 INNER JOIN produtos ON romaneios_detalhes.codigo = produtos.codigo INNER JOIN produtos_linhas ON produtos.id_linha = produtos_linhas.id INNER JOIN produtos_tipos ON produtos.id_tipo = produtos_tipos.id GROUP BY produtos_linhas.linha, produtos_tipos.tipo
*/
$qry3 = mysql_query($sql3) or die ($qry3_err.mysql_error());
答案 0 :(得分:5)
问题是您的WHERE子句位于错误的位置;它必须在之后你的JOIN条款。
答案 1 :(得分:1)
问题是INNER JOINS必须在where子句之前!
您需要在分组前移动where子句。
答案 2 :(得分:1)
伊卡洛斯和布赖恩是对的,在JOIN下面移动WHERE。
请注意,我希望$ idr不会从某个参数或其他东西中受到保护,否则您将容易受到SQL注入攻击。