希望有人可以用下面的如何結果從一行在同一個錶鏈接到另一個
幫助我有3列ID,申請表,NextVersion
這看起來像下面
ID1, WindowsXP, ID2,
ID2, Windows7, ID3
ID3, Windows8 , NULL
返回我的結果表格的最佳方式如下。
ID1, WindowsXP, Windows7,
ID2, Windows7, Windows8
ID3, Windows8 , NULL
在此先感謝
希望有人可以用下面的如何結果從一行在同一個錶鏈接到另一個
幫助我有3列ID,申請表,NextVersion
這看起來像下面
ID1, WindowsXP, ID2,
ID2, Windows7, ID3
ID3, Windows8 , NULL
返回我的結果表格的最佳方式如下。
ID1, WindowsXP, Windows7,
ID2, Windows7, Windows8
ID3, Windows8 , NULL
在此先感謝
,你可以做簡單的加入,但第二個,一些更改後給你機會,結果只限制開始與某些父ID(和所有descentant)的兒童。我不知道你真正的查詢會有多複雜
如果你只需要加入,那麼就對你感到羞愧,sql基礎知識!
SELECT m.id,
m.name,
y.name
FROM mytable AS m
LEFT JOIN mytable AS y
ON m.parent = y.id
和更多的東西cpmlocated
CREATE TABLE MyTable
(
id INT,
name VARCHAR(50),
parent INT
)
go
INSERT INTO MyTable
(id,
name,
parent)
VALUES (1, 'WindowsXP', 2),
(2, 'Windows7', 3),
(3, 'Windows8', NULL)
go
WITH x
AS (SELECT *
FROM MyTable)
SELECT m.id,
m.name,
x.name
FROM MyTable as m
LEFT JOIN x
ON m.parent = x.id
go
感謝代孕 - 你的例子工作。 SQL基礎知識!告訴我的經理誰給了我SQL工作沒有SQL培訓!我從來不知道你可以加入同一張桌子 - 現在 - 非常感謝。謝謝 – user3302303
試試這個
SELECT
t1.ID,
t1.Application,
t1.NextVersion,
t2.Application AS nextApplicationName
FROM
tbl_name t1
LEFT JOIN
tbl_name t2
ON(t1.NextVersion = t2.ID);
謝謝馬努 - 這需要一個小的修正與t2左加入,然後完美的作品 – user3302303
哦,是的..我現在編輯! – Manu
取代yourtable您的表名和執行你的作業本
SELECT a.id,
a.[Application],
y.[Application]
FROM yourtable AS a
LEFT JOIN yourtable AS b
ON a.NextVersion = b.id
提交的日期? –
研究數據庫書籍。例如:數據庫簡介,Abraham Silberschatz等, – user1658435
這些高中或大學的作業? – Ziouas