繁体   English   中英

SQL查询,联接和位置

[英]SQL Query , joins and where

我正在尝试运行一个相当简单的查询,但是它似乎完全没有返回任何结果;

$q  = "SELECT DISTINCT c.product_sku, c.compare_at, c.product_discount_id, d.amount FROM #__{vm}_product as c
LEFT OUTER JOIN #__vm_product_discount as d ON d.discount_id = c.product_discount_id WHERE";
$q .= "c.vendor_id='".$_SESSION['ps_vendor_id']."' ";
$q .= "AND #__{vm}_product.product_publish='Y' ";
$q .= "AND #__{vm}_product.isfront='1' ";
$q .= "AND c.isfront='1' ";

以上之后还有其他查询,但是即使我注释掉所有内容并仅使用一个WHERE子句,也不会返回任何内容。 当我删除它时,它可以工作。 在添加JOIN之前,以下所有代码均有效。

我是使用联接的新手,我猜想它们会使WHERE无法正常工作,但也许我只是一路弄乱了代码,所以也许受过良好训练的人可以在这里找到问题?

提前致谢!

在上面的代码中,WHERE和c.vendor_id之间没有任何空格。 因此您的SQL看起来像:等等WHEREc.vendor_id =等等。 所以首先要尝试的是在第一行的WHERE之后添加一个空格。

如果这个问题比缺少的空间更多,请问您可以在正在运行的$ q中发布实际SQL的示例,而不是用于生成它的代码吗? 您的代码不包含大量的保护措施,例如addslashes()或mysql_real_escape_string(),因此其中可能有些讨厌的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM