使用多个DISTINCT加入2个表

时间:2013-02-22 16:55:47

标签: php mysql join

我试图使用DISTINCT从表中获取值,但这不起作用,这是我正在做的wt

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的图像,所以我该怎么做

5 个答案:

答案 0 :(得分: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

而不是使用分组

答案 1 :(得分: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

答案 2 :(得分: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;

希望,这会有所帮助

答案 3 :(得分:0)

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

SELECT Syntax

答案 4 :(得分: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;
相关问题