MySQL中删除后的术语
给定此示例代码:MySQL中删除后的术语,mysql,sql,Mysql,Sql,给定此示例代码: DELETE d FROM discog d JOIN discog d1 ON d1.artist = d.artist AND d1.track = d.track AND d1.year < d.year; DELETE d 从迪斯科舞厅 在d1.artist=d.artist和d1.track=d.track以及d1.year
DELETE d
FROM discog d
JOIN discog d1 ON d1.artist = d.artist AND d1.track = d.track AND d1.year < d.year;
DELETE d
从迪斯科舞厅
在d1.artist=d.artist和d1.track=d.track以及d1.year
我不明白删除后的d
的作用。
据我所知,语法的结构应该是
从表\u名称中删除
其中某个_列=某个_值
作者在删除后添加了什么
d
?这个位置代表什么?这是内部联接-删除的语法。d表示要从表中删除别名为d的记录,即discog 这是内部联接删除的语法。d表示要从表中删除别名为d的记录,即discog 此delete
有两个表引用:
DELETE d
FROM discog d JOIN
discog d1
ON d1.artist = d.artist AND d1.track = d.track AND d1.year < d.year;
DELETE d
从discog d加入
迪斯科d1
d1.artist=d.artist,d1.track=d.track,d1.year
在这种情况下,引用指向同一个表,但指向不同的行
MySQL如何知道要删除哪些行?您可能希望MySQL只从第一个引用的表中删除,但显式地包含别名是更好的解决方案——它需要编写查询以真正清楚代码的意图。此
删除
有两个表引用:
DELETE d
FROM discog d JOIN
discog d1
ON d1.artist = d.artist AND d1.track = d.track AND d1.year < d.year;
DELETE d
从discog d加入
迪斯科d1
d1.artist=d.artist,d1.track=d.track,d1.year
在这种情况下,引用指向同一个表,但指向不同的行
MySQL如何知道要删除哪些行?您可能希望MySQL只从第一个引用的表中删除,但显式地包含别名是更好的解决方案——它需要编写查询以真正清楚代码的意图。可能重复,可能重复,为什么discog有两个别名
d
和d1
?我们不能同时使用d
吗?是同一张桌子吗?@ptrco。一点也不。您需要区分对表的引用。否则,不平等将如何工作?为什么discog有两个别名d
和d1
?我们不能同时使用d
吗?是同一张桌子吗?@ptrco。一点也不。您需要区分对表的引用。否则,不平等将如何发挥作用?