2013-06-25 72 views
0

是否可以連接不帶外鍵的表? 例如加入不帶外鍵的表

tblstudent 色譜柱:

  1. ID
  2. 姓名
  3. 姓氏
  4. 中間名

tblgrade Comluns:

  1. ID
  2. 測驗
  3. 項目
  4. 考試

tblfinalgrade 列:

  1. 姓氏
  2. ˚F inalgrade

    搜索和ID時可以查看最終成績嗎?

+0

因爲沒有參照物,你必須匹配名字和姓氏tblstudent和tblfinalgrade。 – Prashant16

+0

當關鍵字即時搜索是「id」的值時可能嗎? – NewInJava

回答

1

tblStudent中的id是沒有意義的,因爲您沒有在其他表中引用它。更改您的表格結構以包含此StudentId而不是First NameLast Name

例如:

tblGrade

列:

  • GradeId
  • StudentId
  • 測驗
  • 項目
  • 考試

tblFinalGrade

  • FinalGradeId
  • StudentId
  • FinalGrade

那麼你可以這樣做:

SELECT ID, FirstName, LAstName, Quiz, Project, Exam, FinalGrade 
FROM tblStudent 
INNER JOIN tblGrade ON tblGrade.StudentId = tblStudent.StudentId 
INNER JOIN tblFinalGrade ON tblFinalGrade.StudentId = tblStudent.StudentId 

這將是一個更好的結構比加入FirstNameLast Name只是incase你有5 John Smith你怎麼知道你是返回正確的成績?

雖然我對你的原始設計是咯,你可以用你現有的結構,通過運行下面的查詢執行相同的查詢:

SELECT ID, FirstName, LAstName, Quiz, Project, Exam, FinalGrade 
FROM tblStudent 
INNER JOIN tblFinalGrade ON tblFinalGrade.FirstName = tblStudent.FirstName AND tblFinalGrade.LastName = tblStudent.LastName 
WHERE tblStudent.ID = 1 
+0

我忘了在tblgrade中添加id,對不起 – NewInJava

+0

@NewInJava - 你仍然需要在成績和學生以及最終成績和學生之間建立關聯。我提供的結構會更合適。 –

+0

- 實際上,這是我的問題,我正在使用一個完全像這樣的數據庫(我沒有創建)。當我搜索「id」時,是否可以從tblstudent查看某個學生的最終成績? – NewInJava