1

我在玩 Opencart 的 1.4.9.4 数据库。而且由于我对数据库没有经验,我发现结构很奇怪(很难,很疯狂)。例如:如果我需要显示模型和名称,product我需要加入 2 个表productproduct_description,以及类别、制造商等的相同方法。有一个表只有两个字段product_to_category,字段:category_id产品标识。如果我真的应该使用 JOIN,我使用了多少个 JOIN 来使其工作?但是一件非常奇怪的事情是进行查询,在其中获得产品 ID、名称和型号以及类别名称和制造商名称,我不知道如何实现这一点。至少我认为这将涉及桌子: product、product_description、product_to_category、category_description 和制造商。抱歉弄得一团糟,但我现在脑子一片混乱!

4

2 回答 2

3

在 opencart 中,您将 product_id 值连接在一起以获取整行数据(并使用 where 子句设置描述的正确语言 ID,因此

SELECT * FROM product p LEFT JOIN product_description pd ON p.product_id = pd.product_id WHERE pd.language_id = 1 LIMIT 20

这将从两个表中获取所有数据,并使用限制为 20 个产品和语言 1(默认为英语)正确连接它们。当然,在php中正确编写时,您将需要动态调用一些数据(例如表前缀和语言id),因此如果您有多种语言或带有前缀的数据库表,它也可以工作。就像是

$query = "SELECT * FROM `" . DB_PREFIX . "product` p LEFT JOIN `" . DB_PREFIX . "product_description` pd ON p.product_id = pd.product_id WHERE pd.language_id = " . (int)$this->config->get('config_language_id') . " LIMIT 20";
于 2011-04-16T15:24:41.883 回答
-2

对不起,我完全忘记了这一点: MySQL SELECT Duplicated rows from OpenCarts DataBase 我已经问过了。

于 2011-04-16T15:40:35.383 回答