我使用MySQL和JPA 1.9.4
我需要合并多个联接以检索对象A的列表,其中包含可以通过对象B找到的特定对象C。
实体A:id b_id 实体B:编号c_id 实体C:ID号
在这里,我想检索A的列表,例如C.number等于1。
我试图束缚左联接并约束选择表。
尝试A-B的示例:此方法有效。
SELECT * FROM A a LEFT JOIN B b ON a.b_id = b.id;
尝试B-C的示例:这个也可以。
SELECT * FROM B b LEFT JOIN C c ON b.c_id = c.id WHERE c.number = 1;
尝试A-B-C的示例:此操作无效。
我刚开始尝试从A-B重命名新表,并且mysql说“重复的列名'id'” 我做了其他几次尝试,但是显然我遇到了语法问题,但未能成功解决。
SELECT * FROM (SELECT * FROM A a LEFT JOIN B b ON a.b_id = b.id) AS a_inter;
总而言之,我成功获取了A-B或B-C,但是没有A-B-C表来检索我感兴趣的A对象列表。
能帮我吗?
谢谢
Manu
答案 0 :(得分:0)
答案在顶部的评论中。
SELECT * FROM A a LEFT JOIN B b ON a.b_id = b.id LEFT JOIN C c ON b.c_id = c.id WHERE c.number = 1;
感谢MattOverF。