我正在尝试对与中间表(关联表)的多对多关系执行创建、选择、更新和删除操作。 我有以下结构。在名称匹配的中间表中假设 FK 约束。
tbl_A 和 tbl_B 是多对多的关系。 tbl_IM 是中间表。
tbl_A
aID
Name
tbl_B
bID
Name
UniqueField
Intermediary Table tbl_IM
imID
aID
UniqueField
一个 tbl_A 项可以有多个 tbl_B 项,一个 tbl_B 项可以属于多个 tbl_A 项。
tbl_B 通常是一组固定的 18 条左右的记录(用于程序中允许的选择)。
如何选择和更新属于特定 tbl_A 项目的所有 tbl_B 项目?我如何获得整套 tbl_A 项及其关联的 tbl_B 项?
请不要使用通配符(选择 *)。为了简洁起见,我的示例每个只有 2 个字段;我需要看看它是如何通过使用字段来完成的。转换是可以接受的——所以 P1.aID 没问题。
我看过问题 Select in a many-to-many relationship in MySQL 但我不清楚它如何适用于我的情况。
最佳答案
创建一个将显示您想要的字段的 View
CREATE VIEW combined AS SELECT tbl_A.name, tbl_B.bName
FROM tbl_B INNER JOIN (tbl_A INNER JOIN tbl_M ON tbl_A.ID = tbl_M.AId) ON tbl_B.unique = tbl_M.Unique;
然后就可以像对表一样对 View 进行CRUD操作
关于mysql - 如何在多对多关系上进行 MySQL CRUD 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38253001/