我有两个常用的表,产品和类别,并且由于多对多关系,我创建了一个与两者相关的键映射表。这种关联表就像这样:
id product_id category_id
1 2 4
2 2 6
3 3 4
etc
它们是相应product_id
和category_id
主键的外键。
所以现在我正在尝试编写一个查询来测试结果。通常我希望它向我展示一些属于特定类别的产品。但我已经尝试了几个查询,但它告诉我我的mysql语法有错误。
select products.name
from products
join producto-categoria
on producto-categoria.product_id = products.id
join categorias
on producto-categoria.category_id = categorias.id
where categorias.id = 3
limit 100
我实际上首先在phpmyadmin中创建了结构,然后上传了相应的csv文件,最后通过他们在关联表中创建了索引的FK(也称为键映射表)链接了它们,我没有任何错误而它创建了FK链接。 InnoDB作为引擎。
答案 0 :(得分:0)
将producto-categoria
重命名为productocategoria
。连字符导致语法错误,因为它被解释为减号。您也可以转义名称,但最好使用“简单”名称而不是包含非标准字符的名称。
然后还有两件事:
categorias
的联接,因为未使用该表。所以:
select p.name
from products p join
productocategoria pc
on pc.product_id = p.id
where pc.category_id = 3
limit 100