我需要匹配表[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()) {
}
}
任何帮助将不胜感激。谢谢!
答案 0 :(得分:3)
您应在JOIN
上执行TBL_LESSONCAM.CAM = TBL_VIDEO.LESSONCAM
或lc.CAM = v.LESSONCAM