匹配主键和外键值

时间:2018-08-02 04:03:45

标签: c# sql-server

我需要匹配表[LESSONCAM_ID]TBL_LESSONCAM中的列TBL_VIDEO的值,如下所示。

[LESSONCAM_ID] in TBL_LESSONCAM主键

[LESSONCAM_ID] in TBL_VIDEO外键


TBL_LESSONCAM
╔══════════════╦══════════╦════════════╦═══════════╗
║ LESSONCAM_ID ║ LESSONID ║    CAM     ║ VIDEOPATH ║
╠══════════════╬══════════╬════════════╬═══════════╣
║          100 ║       10 ║ Audience 1 ║ C://...   ║
║          101 ║       10 ║ Audience 2 ║ C://...   ║
║          102 ║       10 ║ Lecturer   ║ C://...   ║
╚══════════════╩══════════╩════════════╩═══════════╝

TBL_VIDEO (BEFORE UPDATE)
╔═════════════╦══════════╦═══════════╦═════════╦════════════╦══════════════╗
║ ANALYSIS_ID ║ LESSONID ║ TIMESTAMP ║  VIDEO  ║ LESSONCAM  ║ LESSONCAM_ID ║
╠═════════════╬══════════╬═══════════╬═════════╬════════════╬══════════════╣
║           9 ║       10 ║       300 ║ C://... ║ Audience 1 ║ NULL         ║
║          10 ║       10 ║       600 ║ C://... ║ Audience 2 ║ NULL         ║
║          11 ║       10 ║       900 ║ C://... ║ Lecturer   ║ NULL         ║
╚═════════════╩══════════╩═══════════╩═════════╩════════════╩══════════════╝

TBL_VIDEO (AFTER UPDATE)
╔═════════════╦══════════╦═══════════╦═════════╦════════════╦══════════════╗
║ ANALYSIS_ID ║ LESSONID ║ TIMESTAMP ║  VIDEO  ║ LESSONCAM  ║ LESSONCAM_ID ║
╠═════════════╬══════════╬═══════════╬═════════╬════════════╬══════════════╣
║           9 ║       10 ║       300 ║ C://... ║ Audience 1 ║ 100          ║
║          10 ║       10 ║       600 ║ C://... ║ Audience 2 ║ 101          ║
║          11 ║       10 ║       900 ║ C://... ║ Lecturer   ║ 102          ║
╚═════════════╩══════════╩═══════════╩═════════╩════════════╩══════════════╝

我在代码结尾尝试了TBL_VIDEO的以下更新语句,但它不会更新,仍然保持NULL

using (SqlCommand cmd8 = new SqlCommand("UPDATE v SET v.LESSONCAM_ID=lc.LESSONCAM_ID FROM TBL_VIDEO v JOIN TBL_LESSONCAM lc ON v.LESSONCAM_ID=lc.LESSONCAM_ID; ", conn)) {
   using (SqlDataReader dr = cmd8.ExecuteReader()) {
   }
}

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

您应在JOIN上执行TBL_LESSONCAM.CAM = TBL_VIDEO.LESSONCAM

lc.CAM = v.LESSONCAM