【问题标题】:How to SELECT data that connect in many to many relationship table如何选择连接在多对多关系表中的数据
【发布时间】:2018-07-16 02:00:15
【问题描述】:

我想选择材料表中的所有组件和设备表中的设备名称。

device_name 与 id_material 和 id_equipment 相连。 1个材料可以由许多设备名称和设备组成。

我尝试在 MS Access 查询中使用此代码,但它显示语法错误(缺少操作数)。

SELECT material.id_material, material.part_number_material, material.material_description,material.brand, material.stock, material.um, equipment.equipment_name, material.type, material.location, material.remarks FROM equipment_list a INNER JOIN material b ON a.PKid_material = b.id_material INNER JOIN equipment c ON a.PKid_equipment = c.id_equipment;

Example Data

我是初学者。

【问题讨论】:

  • 我怀疑您实际上使用的是 MS Access,而不是 MySQL。
  • 是的,但我先尝试用 mysql 语言编写代码
  • 那我出去了。您需要告诉我们您真正使用的是哪个数据库。
  • 好的,我正在使用 ms 访问,对错误深表歉意。我认为它具有相同的含义,因为它说 SQL 大声笑。

标签: sql database ms-access many-to-many


【解决方案1】:

如果您使用的是 Access,则需要括号来进行三向连接:

SELECT
    m.id_material,
    m.part_number_material,
    m.material_description,
    m.brand,
    m.stock,
    m.um,
    e.equipment_name,
    m.type,
    m.location,
    m.remarks
FROM
(equipment_list el INNER JOIN material m
    ON el.PKid_material = m.id_material)
INNER JOIN equipment e
    ON el.PKid_equipment = e.id_equipment;

【讨论】:

  • 感谢您的回答。坏消息是当我尝试代码时它没有显示任何价值,好消息是我没有错误。为什么会这样?
  • 也许问题出在您的源数据上。我回答主要是为了修复语法错误。如果您需要查询业务逻辑方面的帮助,您应该显示示例数据。
  • 根据您的示例数据,您应该在结果集中获得一些行。我不确定为什么上面的查询是空的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多