2014-06-23 45 views
0

我希望我能解释一下自己。双查询两个字段的表(INNER JOIN?)

我有许多表(asignaciones)指向校友和投资表。这两张表都有一个指向机构表的institucionID。

我需要(在一个查询中)从校友和投资两个机构。我有这个但不完整。我猜如果因为AND在最后一个内部连接:

SELECT 
alumnos.alumnosID, 
invest.investigadoresID, 
asignaciones.alumnosID AS alumnosID1, 
asignaciones.investigadoresID AS investigadoresID1, 
instituciones.institucion 
FROM alumnos 
INNER JOIN asignaciones ON alumnos.alumnosID = asignaciones.alumnosID 
INNER JOIN invest ON asignaciones.investigadoresID = invest.investigadoresID 
INNER JOIN instituciones ON alumnos.institucionesID = instituciones.institucionesID AND invest.institucionesID = instituciones.institucionesID 

这缺乏第二个机构。我想起来一个

在这个任何提示,真是感谢

+0

你可以添加sqlfiddle链接到你的问题,以便我们可以尝试使用表吗? – souvickcse

回答

0

此查询schold解决你的问题:

SELECT 
alumnos.alumnosID, 
invest.investigadoresID, 
asignaciones.alumnosID AS alumnosID1, 
asignaciones.investigadoresID AS investigadoresID1, 
instituciones.institucion 
instituciones1.institucion 
FROM alumnos 
INNER JOIN asignaciones ON alumnos.alumnosID = asignaciones.alumnosID 
INNER JOIN invest ON asignaciones.investigadoresID = invest.investigadoresID 
INNER JOIN instituciones instituciones ON alumnos.institucionesID = instituciones.institucionesID 
INNER JOIN instituciones instituciones1 ON invest.institucionesID = instituciones1.institucionesID 

你必须加入最后一个表的两倍。

+0

你应该给'SELECT'子句中的两个'institucion'列提供别名。 – Barmar

+0

谢谢。我有一个问题:这是什么? INNER JOIN instituciones instituciones1 ON ...内部连接中的2个表格? – notuo

+0

@notuo'instituciones1'是tabe'instituciones'的别名。所以sql引擎知道值来自哪个表。如果你不使用别名,那么sql引擎不能决定这个。希望这可以帮助。 – Jens