)在外鍵表(TABLE B)中選擇一個非ID列(我有兩張表,STUDENT和RULES表)學生表保存與學生和規則相關的數據表保存與特定學生的規則。 現在對學生的表,我有5列作爲外鍵的規則表如根據主表中的外鍵(TABLE
CREATE TABLE dbo.RULES
(
ID int identity not null primary key,
RULENAME varchar
)
CREATE TABLE dbo.STUDENT
(
ID int identity not null primary key,
NAME varchar(50),
SURNAME varchar(50),
ADRESS varchar(50),
RULE1 int not null references dbo.RULES(ID),
RULE2 int not null references dbo.RULES(ID),
RULE3 int not null references dbo.RULES(ID),
RULE4 int not null references dbo.RULES(ID),
RULE5 int not null references dbo.RULES(ID)
)
我想實現的是從學生表中選擇姓名,地址並將其與RUPENAME一起用於STUDENT中的每個RULE外鍵例如
NAME SURNAME ADDRESS RULE1NAME RULE2NAME RULE3NAME RULE4NAME RULE5NAME
我熬了整晚試圖破解這個,但可悲的是我仍然在廣場之一。我將這歸因於我在SQL方面的經驗不足,但你可以幫助我嗎?
UPDATE
謝謝您的回答傢伙,dotnetom,巴拉德瓦。
我內心加入了5次dotnetoms建議的答案。查詢工作正常,但它爲所有五條規則返回相同的規則。這是我的查詢
SELECT
STUDENT.NAME,
STUDENT.SURNAME,
STUDENT.ADDRESS,
RULES.RULENAME AS RULE1NAME,
RULES.RULENAME AS RULE2NAME,
RULES.RULENAME AS RULE3NAME,
RULES.RULENAME AS RULE4NAME,
RULES.RULENAME AS RULE5NAME
FROM STUDENT s
INNER JOIN RULES AS r1 ON STUDENT.RULE1 = RULES.ID
INNER JOIN RULES AS r2 ON STUDENT.RULE2 = RULES.ID
INNER JOIN RULES AS r3 ON STUDENT.RULE3 = RULES.ID
INNER JOIN RULES AS r4 ON STUDENT.RULE4 = RULES.ID
INNER JOIN RULES AS r5 ON STUDENT.RULE5 = RULES.ID
有什麼建議嗎?謝謝!
因此,這是MySQL或SQL服務器的問題? – dotnetom
您已將此標籤標記爲[tag:mysql] *和* [tag:sql-server]。這是兩種不同的產品。你打算用兩個標籤嗎?另外,當你有*多個*列僅由數字區分時,它通常是SQL中的一種設計氣味 - 學生與規則的綁定可能應該是一個獨立的多對多表,並且包含許多*行*需要。 –
SQL Server問題。我的道歉,我想以某種方式指定? –