用于在SQL Server 2008中向多对多关系插入默认值的脚本
我正在使用用于在SQL Server 2008中向多对多关系插入默认值的脚本,sql,sql-server,sql-server-2008,join,sql-insert,Sql,Sql Server,Sql Server 2008,Join,Sql Insert,我正在使用SQLServer2008。考虑下面的表格: 表学生 ╔════╦═══════════╦══════════╗ ║ ID ║ FIRSTNAME ║ LASTNAME ║ ╠════╬═══════════╬══════════╣ ║ 1 ║ joe ║ Smith ║ ║ 2 ║ frank ║ Smith ║ ║ 3 ║ Scott ║ Smith ║ ╚════╩═══════════╩══════════╝ 表课程 ╔══
SQLServer2008
。考虑下面的表格:
表学生
╔════╦═══════════╦══════════╗
║ ID ║ FIRSTNAME ║ LASTNAME ║
╠════╬═══════════╬══════════╣
║ 1 ║ joe ║ Smith ║
║ 2 ║ frank ║ Smith ║
║ 3 ║ Scott ║ Smith ║
╚════╩═══════════╩══════════╝
表课程
╔════╦═════════╦════════════════╗
║ ID ║ NAME ║ DESCRIPTION ║
╠════╬═════════╬════════════════╣
║ 1 ║ Physics ║ PHYSICS COURSE ║
║ 2 ║ MATH ║ COURSE ║
╚════╩═════════╩════════════════╝
╔════════════╦═══════════╦═══════╗
║ STUDENT_ID ║ COURSE_ID ║ GRADE ║
╠════════════╬═══════════╬═══════╣
║ 1 ║ 1 ║ 9 ║
║ 2 ║ 1 ║ 8 ║
║ 3 ║ 1 ║ 6 ║
╚════════════╩═══════════╩═══════╝
表学生课程
╔════╦═════════╦════════════════╗
║ ID ║ NAME ║ DESCRIPTION ║
╠════╬═════════╬════════════════╣
║ 1 ║ Physics ║ PHYSICS COURSE ║
║ 2 ║ MATH ║ COURSE ║
╚════╩═════════╩════════════════╝
╔════════════╦═══════════╦═══════╗
║ STUDENT_ID ║ COURSE_ID ║ GRADE ║
╠════════════╬═══════════╬═══════╣
║ 1 ║ 1 ║ 9 ║
║ 2 ║ 1 ║ 8 ║
║ 3 ║ 1 ║ 6 ║
╚════════════╩═══════════╩═══════╝
我需要为数学课程的所有用户插入默认的10分,如果该用户不存在这样的分数
我不熟悉Microsoft SQL Server和T-SQL。你能帮我解答这个问题吗
INSERT INTO STUDENT_COURSE (Student_ID, course_ID, grade)
SELECT a.ID as StudentID, b.ID as Course_ID, 10 AS grade
FROM Student a
CROSS JOIN Course b
LEFT JOIN
(
SELECT d.*
FROM STUDENT_COURSE d
INNER JOIN Course e
ON d.Course_ID = e.ID
WHERE e.Name = 'Math'
) c ON a.ID = c.student_ID AND
b.ID = c.course_ID
WHERE c.student_ID IS NULL AND
b.Name = 'Math'
STUDENT\u COURSE
MySQL> SELECT * FROM STUDENT_COURSE
╔════════════╦═══════════╦═══════╗
║ STUDENT_ID ║ COURSE_ID ║ GRADE ║
╠════════════╬═══════════╬═══════╣
║ 1 ║ 1 ║ 9 ║
║ 2 ║ 1 ║ 8 ║
║ 3 ║ 1 ║ 6 ║
║ 1 ║ 2 ║ 10 ║
║ 2 ║ 2 ║ 10 ║
║ 3 ║ 2 ║ 10 ║
╚════════════╩═══════════╩═══════╝
微软的产品叫做SQL Server,其查询语言“方言”是T-SQL(Transact-SQL)