如何在Opencart的数据库中使用表之间的连接进行SELECT?

时间:2011-04-03 20:06:47

标签: mysql select join opencart

我正在玩Opencart的1.4.9.4数据库。由于我对数据库没有经验,我发现结构很奇怪(很难,很疯狂)。例如: 如果我需要显示模型和product的名称,我需要加入2个表产品 product_description ,以及类别,制造商等相同的方法。 表中只有两个字段, product_to_category ,字段: category_id product_id 。我使用了多少个JOIN,如果我真的应该使用JOIN,使其工作? 但是一个非常奇怪的事情就是在我获得产品ID,NAME和MODEL与CATEGORY NAME和MANUFACTURER NAME的情况下进行查询,我不知道如何实现这一点。它会涉及到这个表,至少我认为: 产品,product_description,product_to_category,category_description和制造商。 抱歉这个烂摊子,但我现在的想法很乱!

2 个答案:

答案 0 :(得分: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";

答案 1 :(得分:-2)

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