2009-10-24 140 views
0

我有一个表,user_quotes,与场quotes_idquotes_userquotes_descquotes_datequotes_status,并quotes_location。在此quotes_user允许重复条目。当我执行我的查询时,我试图避免重复条目quotes_user。所以我执行这样的查询,鲜明MySQL查询返回的所有记录

select distinct quotes_user from user_quotes; 

此查询仅返回quotes_user字段。我如何使用distinct quotes_user检索所有其他记录。

我曾尝试与这些之后,

select distinct quotes_user, quotes_desc, quotes_date, quotes_status from user_quotes; 

它不回避quotes_user的重复。

如果我使用,

select distinct quotes_user, * from user_quotes; 

我得到的MySQL错误,

你有一个错误的SQL语法;检查与您的MySQL服务器版本相对应的手册,以便在'* FROM user_quotes附近使用正确的语法。

如何使用同一个表中的单个列选择不同的记录来获取所有记录?我在该字段中存储电子邮件地址。数据类型为varchar

注意:请不要建议我其他类型的团体或其他。我需要知道如何通过仅使用distinct来检索记录。

+0

是否要为每个quotes_user检索一行报价?就像每个用户或者第一个用户最近的报价一样,是这样的吗?或者是否要为每个quotes_user计算报价或平均报价值? – 2009-10-24 07:05:12

+0

@Dale我想避免quotes_user的重复。结果可能会根据quotes_user而有所不同。谢谢。 – Paulraj 2009-10-24 07:53:31

回答

2

除了已经说过的内容之外,应该强调的是,当您选择多列时,DISTINCT关键字不能为为单个列提供不同的结果。你会得到明显的,在你的情况,4列。你正在观察的是DISTINCT的预期标准行为。

+0

好的。你可以用我的例子详细说明,我怎样才能以任何其他方式使用disitinct来实现所有记录?通过使用连接像? – Paulraj 2009-10-24 07:27:46

+0

无论如何,我无法真正想到使用'DISTINCT'实现你想要的。这可以通过'GROUP BY'很容易地完成。你为什么如此重视使用“DISTINCT”? – 2009-10-24 08:16:14

+0

哦..很好。我没有理由为什么我正在寻找这个独特的问题。当我通过使用GROUP BY得到结果时,我只想知道如何使用不同的结果来获得结果。如果有人向我提供一些链接或教程,以深入了解不同的内容,将对我有所帮助。谢谢。 – Paulraj 2009-10-24 09:16:08

0

听起来像quotes_user应该是一个外键,如user_id大概是你的用户表。然后,您可以通过user_id查询user_quotes,返回该用户的所有报价。您的前端可以很好地格式化每个用户的所有引用,它听起来不像是一个MySql问题。

2

你说要检索等领域,但你没有指定 SQL是如何知道哪些值以检索等多个领域,为quotes_user每个不同的值。

要显示出你想要我的意思是,看看这个例子:

+-------------+---------------+ 
| quotes_user | email_address | 
+-------------+---------------+ 
| user1  | email1  | 
| user1  | email2  | 
| user2  | email3  | 
| user2  | email4  | 
| user2  | email5  | 
| user3  | email6  | 
+-------------+---------------+ 

现在,如果你只是quotes_user,输出显然是:

+-------------+ 
| quotes_user | 
+-------------+ 
| user1  | 
| user2  | 
| user3  | 
+-------------+ 

但是,如果你想要的其他领域,你需要决定,例如,email1email2user1行。

也许你想要的是连接其他领域的价值在一起。在这种情况下,我建议使用GROUP_CONCAT集合函数和GROUP BY quotes_user

虽然我不确定为什么要避免使用GROUP BY。也许如果你能解释这一点,我们可以帮助更多。

+0

嘿,你是用手写这些ASCII表还是有工具可以生成它们? – 2009-10-24 07:00:51

+0

感谢您的回复。当我与小组一起尝试时,我得到了结果。但以同样的方式为什么我不能得到我已经尝试过的独特结果。我怎样才能达到相同的结果,完成使用组与独特。 – Paulraj 2009-10-24 07:05:30

+0

你不能。阅读我的答案。 – 2009-10-24 07:09:34