MySQL - 使用另一个表中的列排序行并且不重复数据

Posted

技术标签:

【中文标题】MySQL - 使用另一个表中的列排序行并且不重复数据【英文标题】:MySQL - order rows with a column from another table and don't repeat data 【发布时间】:2016-08-08 07:08:43 【问题描述】:

更新 - 没关系,我用 php 端修复它并使用“不同”最终查询(解决方案)是这样的:

SELECT Distinct m.idDenuncia FROM denunciaMedicamentos AS m JOIN denuncias AS p WHERE p.id=m.idDenuncia ORDER BY m.medicamento


SELECT * FROM denunciaMedicamentos AS m
JOIN denuncias AS p
WHERE p.id=m.idDenuncia
ORDER BY m.medicamento

它有效,但它重复列 ididDenuncia。结果如下:

idDenuncia 是对 denuncias 表的引用。

我想知道,我该怎么做才能不重复数据 (id)?

【问题讨论】:

在结果中选择你想要的列而不是 * 是的,谢谢@Oldskool 但是.. 我想知道我能做些什么来防止“idDenuncia”列的重复值? 在选择中使用 m.idDenuncia。 【参考方案1】:

现在,我知道您不希望 128 在您的结果中重复。如果这是您想要使用的:

SELECT distinct(m.idDenuncia) FROM denunciaMedicamentos AS m JOIN denuncias AS p WHERE p.id=m.idDenuncia ORDER BY m.medicamento

【讨论】:

但是您仍然需要检查您的条目...您有两条记录的原因是因为您有两个对应的条目 id【参考方案2】:

从一个表中选择所有并从另一个表中选择将解决您的问题

SELECT  m.*,p.col1,p.col2 FROM denunciaMedicamentos AS m JOIN denuncias AS p WHERE p.id=m.idDenuncia  ORDER BY m.medicamento

【讨论】:

感谢您的帮助,我想知道如何防止“idDenuncia”列出现重复值?

以上是关于MySQL - 使用另一个表中的列排序行并且不重复数据的主要内容,如果未能解决你的问题,请参考以下文章

将行数传递给Oracle中的列[重复]

在mysql if语句中使用另一个表中的列

MySQL - 更新/设置一个表中的列等于另一个表中的 MAX 值

重命名 mysql 表中的列,而不必重复其类型定义

重命名mysql表中的列而不必重复其类型定义

MySQL索引