gpt4 book ai didi

mysql - 当我尝试在 MySQL 中使用 JOIN 时收到 NULL

转载 作者:行者123 更新时间:2023-11-29 10:44:54 28 4
gpt4 key购买 nike

我正在尝试使用查询将 ps_products 中的两列和 ps_product_lang 中的一列联接到 PrestaShop 数据库中的一个表中,但我无法弄清楚。每当我运行下面的代码时,我只会得到 NULL 值名称,反之亦然,当我切换左右时。我尝试过使用 UNION ALL、在 SELECT 查询周围加上括号并使用 WHERE,但没有任何效果。数据库运行 MySQL,因此如果没有解决方法,就不可能使用 FULL OUTER JOIN。我对 SQL 不太有经验,所以我可能在这里错过了一些东西。

代码:

SELECT 
ps_product_lang.name AS 'name',
ps_product.id_product AS 'product id',
ps_product.reference AS 'reference'
FROM ps_product_lang
RIGHT JOIN ps_product ON name = reference
UNION
SELECT
ps_product_lang.name AS 'name',
ps_product.id_product AS 'product id',
ps_product.reference AS 'reference'
FROM ps_product_lang
LEFT JOIN ps_product ON name = ps_product.reference

有什么想法吗?谢谢!

最佳答案

您无法根据产品引用及其名称连接表。产品引用是 SKU,产品名称只是一个取决于语言的名称。您需要使用 id_product 连接表。

SELECT ps_product.id_product, ps_product.reference, ps_product_lang.name
FROM ps_product
LEFT JOIN ps_product_lang ON (ps_product.id_product = ps_product_lang.id_product)
WHERE ps_product_lang.id_lang = language_id AND ps_product_lang.id_shop = shop_id

language_idshop_id 替换为正确的值。

您严重缺乏关系数据库如何工作的知识,因此您应该阅读一些教程。

关于mysql - 当我尝试在 MySQL 中使用 JOIN 时收到 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44775821/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com