请高手帮忙解决一个SQL疑惑。多谢

来源:百度知道 编辑:UC知道 时间:2024/06/22 06:28:16
1、列出歌名为'Alison'的专辑名称和作者
SELECT title, artist
FROM album JOIN track
ON (album.asin=track.album)
WHERE song = 'Alison'

2、哪个artist录制了歌曲'Exodus'
SELECT artist
FROM album JOIN track ON (asin=album)
WHERE song = 'Exodus'

这两个句子,为什么上面一个用[ON (album.asin=track.album)]
而下面一个用[ON (asin=album)
WHERE song = 'Exodus'
]
album.asin=track.album与asin=album它们的区别到底是什么。
不是要很长的文章,只需要说得通俗易懂。
谢谢各位朋友。

在这个应用中这两者都是正确的,是没有区别的,
因为这2列是不同的名字,不会造成冲突,
如果2个表中的这2列的名字是一样的,则必须加上表名以标明这个字段是属于哪个表的,这样就不会造成二义性的引用,

呵呵,为了规范起见,还是最好用 album.asin=track.album,
这样可以养成好习惯,并且减少出错率,
呵呵,希望能有帮助,^_^

没有多大区别,只有当它们的列名想同的时候才有区别,
用来分别你用的那列是那个表的。比如你那两个表都是
用ID列来关联的,都必须写上表名

效果是一样的.
其实第一个语句也可以按第二句一样来写..这个主要是明确标出字段来自那个表.如果在连接的两个表里面有相同的字段就要使用这种方法标出字段来自的表以防编译的时候编译器不知道字段明确的出处..

不会

asin=album 没有加表名的前缀实际上是省略了,两句在此处的效果是一样的,但是如果两张表中的字段名称一样就必须加前缀了,否则会不认识的