我使用MySQL和JPA 1.9.4
我需要叠加多个连接以检索具有特定对象C的对象列表A,我可以通过对象B找到该对象。
实体A:id b_id实体B:id 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对象列表。
请问你能帮帮我吗?
谢谢,
我的
答案在评论中。
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。