我有4個表檢索數據2008
table1
(id, stateId(fk), name, carId(fk)
)table2
(stateId(pk), state, countryId(fk)
)table3
(countryId, country, currency
)table4
(carId, car
)
我想通過使用連接的存儲過程從上述表中檢索名稱,州,國家,汽車。如果有其他簡單的方法,請告訴。
謝謝。
我有4個表檢索數據2008
table1
(id, stateId(fk), name, carId(fk)
)table2
(stateId(pk), state, countryId(fk)
)table3
(countryId, country, currency
)table4
(carId, car
)我想通過使用連接的存儲過程從上述表中檢索名稱,州,國家,汽車。如果有其他簡單的方法,請告訴。
謝謝。
一個簡單JOIN
應該做的:
CREATE PROCEDURE schema.YourStoredProcedureName
AS
SELECT t1.name, t2.state, t3.country, t4.car
FROM table1 t1
JOIN table2 t2 ON t1.stateId = t2.stateId
JOIN table3 t3 ON t2.countryId = t3.countryId
JOIN table4 t4 ON t1.carId = t4.carId
GO
它將重複所有行的次數與國家數量一樣多。 – user2512996
@ user2512996 - 你期望的結果是什麼(也許是樣本數據)。您在文章中沒有提及任何重複記錄。它應該顯示多個國家? – sgeddes
好的,我在表3中有3個國家(a,b,c),條件是table1中的一個id只能在一個國家,table1中的一個id只能處於一個狀態,table1中的一個id可以有現在只有一輛車我想選擇上面指定的字段,其中id = 1表1 – user2512996
沒有其他簡單的方法。加入是基本和容易的(http://msdn.microsoft.com/en-us/library/ms191517(v=sql.105).aspx)
select tbl1.name, tbl2.state, tbl3.country, tbl4.car
From table1 tbl1
inner join table2 tbl2 on tbl1.stateid =tbl2.stateid
inner join table3 tbl3 on tbl2.countryid = tbl3.countryid
inner join table4 tbl4 on tbl1.carId = tbl4.carId
請添加樣品數據和所需的結果。從你的評論中,你不清楚你想要什麼結果(以及爲什麼)。 – sgeddes