Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Prestashop数据库的反向SQL查询|显示未在仓库中的产品_Mysql_Sql_Select_Prestashop - Fatal编程技术网

Mysql Prestashop数据库的反向SQL查询|显示未在仓库中的产品

Mysql Prestashop数据库的反向SQL查询|显示未在仓库中的产品,mysql,sql,select,prestashop,Mysql,Sql,Select,Prestashop,我需要SQL查询的帮助。基本上,我在寻找不在仓库中的产品,在Prestashop数据库中(电子商务cms,仅供参考)。我在ps_product_lang表中有这个产品列表,在这里我还可以看到产品的名称,我将产品的ID加入其中,以从处理仓库的其他两个表(ps_warehouse_product_location和ps_warehouse)恢复信息。我进行查询是为了显示产品在哪个仓库,即: SELECT A.id_product AS IdProd, A.name AS Nome, B.id_war

我需要SQL查询的帮助。基本上,我在寻找不在仓库中的产品,在Prestashop数据库中(电子商务cms,仅供参考)。我在ps_product_lang表中有这个产品列表,在这里我还可以看到产品的名称,我将产品的ID加入其中,以从处理仓库的其他两个表(ps_warehouse_product_location和ps_warehouse)恢复信息。我进行查询是为了显示产品在哪个仓库,即:

SELECT A.id_product AS IdProd, A.name AS Nome, B.id_warehouse AS IdMag, C.name AS Magazzino FROM ps_product_lang A
INNER JOIN ps_warehouse_product_location B ON A.id_product = B.id_product
INNER JOIN ps_warehouse C on B.id_warehouse = C.id_warehouse
WHERE 1
当然,现在我需要的恰恰相反。请记住,产品ID位于ps_product_lang表中。我该怎么做


提前谢谢各位

您只需将
NOT IN
与子查询一起使用即可:

SELECT A.id_product AS IdProd, A.name AS Nome, B.id_warehouse AS IdMag, C.name AS Magazzino FROM ps_product_lang A
LEFT JOIN ps_warehouse_product_location B ON A.id_product = B.id_product
LEFT JOIN ps_warehouse C on B.id_warehouse = C.id_warehouse
WHERE C.id_warehouse IS NULL
SELECT id_product
FROM ps_product_lang
WHERE id_product NOT IN (
    SELECT p.id_product
    FROM ps_product_lang p
    INNER JOIN ps_warehouse_product_location wpl
        ON p.id_product = wpl.id_product
)

谢谢,但那没用。PS的后台Sql Manager只是说它不会显示结果。从PHPMyAdmin同样,它只生成void结果。编辑:我忘了说在ps\U产品中没有id\U仓库字段table@NandoPC请参见编辑,如果您将另一个
内部连接更改为
左连接,是否有帮助?看起来它现在正在工作,很好,谢谢:)我还添加了另一个变量,仅控制激活的产品,所以我会缩小范围。这样:你能解释一下左连接和内连接区别背后的细节吗?我是sql的初学者,我想在这些方面学得更好:)提前谢谢@谷歌是你的朋友,有很多关于加入的好教程。我想即使是维基百科页面也能提供足够的信息。谢谢你的帮助。我用@HoneyBadger advice解决了这个问题,之后对它进行了扩展,现在它按预期工作:)我还将尝试您的解决方案用于测试:)再次感谢。