实体:
- 型号
- 类别
- 关键字
模型与关键字具有多对多关系,类别与关键字具有多对多关系。
orm生成以下表格
- 型号
- 类别
- 关键字
- keyword_model
- keyword_category
给定一个类别后,如何获取与该类别相关的所有模型?我会这样做
- 按category.id从keyword_category获取所有关键字id
- 将结果与 keywords_model 表连接
- 连接的结果应该是所有相关的模型 ID
由于 symfony2 处理实体而不是表,因此似乎很难创建 mysql 查询。我尝试过类似的东西
SELECT x,y FROM MyBundle:Category x, MyBundle:Model y
JOIN x.keywords
JOIN y.keywords
WHERE
x.id = " . $category . "
但是这是无效的 mysql 语法。有什么想法如何在这里获取模型吗?
最佳答案
您可以尝试以下方法:
SELECT
y
FROM
MyBundle:Model y
WHERE
EXISTS (
SELECT
x
FROM
MyBundle:Category x
JOIN
x.keywords xk
WHERE
xk MEMBER OF y.keywords AND
x = :category
)
或者如果您的亲戚是bidirectional :
SELECT
y
FROM
MyBundle:Model y
JOIN
y.keywords yk
JOIN
yk.categories c
WHERE
c = :category
关于mysql - 如何加入多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20418257/