2013-02-22 121 views
0

我的努力,从表中的值使用DISTINCT得到,但是这是行不通的,这里是重量我所做的加入2代表与多个不同

SELECT top100albums.songs, english_fm.artist, 
    english_fm.album, english_fm.image 
FROM top100albums, english_fm 
WHERE top100albums.songs = english_fm.album 

我很困惑,我该如何使用这一查询DISTINCT能我用它像这样...

SELECT top100albums.songs, english_fm.DISTINCT(artist), 
    english_fm.DISTINCT(album), english_fm.DISTINCT(image) 
FROM top100albums, english_fm 
WHERE top100albums.songs = english_fm.album 

这是错误的...

我想DISTINCT(从表english_fm这些行艺术家,专辑,形象的不重复的结果,所以我怎么能那样做

回答

2

试试这个

SELECT top100albums.songs, english_fm.artist, english_fm.album, english_fm.image 
    FROM top100albums, english_fm 
    WHERE top100albums.songs = english_fm.album 
    GROUP BY english_fm.artist, english_fm.album, english_fm.image 

不同使用群体的insetead由

2
SELECT top100albums.songs, english_fm.artist, english_fm.album, english_fm.image 
FROM top100albums, english_fm 
WHERE top100albums.songs = english_fm.album 
GROUP BY top100albums.songs, english_fm.artist, english_fm.album, english_fm.image 
0

DISTINCT关键字告诉引擎返回唯一行列(结果集的记录)。请参阅文档中的用法。

SELECT Syntax

0

DISTINCT适用于行,而不是单独的列。

因此,使用`GROUP BY'来满足您的需求。

SELECT top100albums.songs, english_fm.artist, english_fm.album), english_fm.image 
FROM top100albums, english_fm 
WHERE top100albums.songs = english_fm.album GROUP BY english_fm.artist, english_fm.album, english_fm.image; 
1

这是完全优化的查询与所需的结果。

试试这个

SELECT ta.songs, ef.artist, ef.album, ef.image 
FROM english_fm AS ef 
INNER JOIN top100albums AS ta ON ef.album = ta.songs 
GROUP BY ef.artist, ef.album, ef.image; 

希望,这将有帮助