2014-06-23 46 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