php - MySQL Distinct 子句问题

标签 php mysql sql wordpress

我遇到了 MySQL Distinct 子句的奇怪问题。我正在尝试使用内部联接进行区分,但重复了相同的术语名称和 object_is 。我希望不重复相同的名称或 object_id。

编辑

就表名称重复而言,在 term_relations terma_taxonomy_id 和对象重复中,我希望这些值不重复。

注意:我正在 WordPress 中工作

这是我的代码:

Select Distinct wTerm.*, wTermTax.*, wTermRel.*
From wp_terms As wTerm
Inner Join wp_term_taxonomy As wTermTax
On wTerm.term_id = wTermTax.term_id
Inner Join wp_term_relationships As wTermRel
On wTermTax.term_taxonomy_id = wTermRel.term_taxonomy_id
Where wTermRel.object_id In(140,99,89,87,58)
And wTermTax.taxonomy = 'pa_garment-type'

我怎样才能实现这个目标。

最佳答案

正如@Logar所说,distinct将寻找唯一的记录。根据你的问题,你需要的是使用像这样的Group By子句

SELECT column1, column2
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2

您将在分组依据中使用Column1、column2作为您想要唯一基于的列。 看看这个https://stackoverflow.com/questions/2421388/using-group-by-on-multiple-columns另请注意,使用 group by 允许您执行聚合函数。理想情况下,如果您不需要执行聚合函数,但在您的情况下指定特定的唯一列 Group By 是最好应用在这里。

Select wTerm.*, wTermTax.*, wTermRel.*
From 
wp_terms As wTerm
Inner Join wp_term_taxonomy As wTermTax
On wTerm.term_id = wTermTax.term_id
Inner Join wp_term_relationships As wTermRel
On wTermTax.term_taxonomy_id = wTermRel.term_taxonomy_id
Where 
wTermRel.object_id In(140,99,89,87,58)
And wTermTax.taxonomy = 'pa_garment-type'
Group By 
(Your specific columns here)

关于php - MySQL Distinct 子句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25479588/

相关文章:

php - 在mysql文本字段中存储一个变量

php 不向数据库发送消息

mysql - 仅需要执行一次 data.sql 文件

mysql - 我应该规范数据库中的时间记录吗?

mysql - 如何使用条件和限制正确编写mysql子选择

mysql - 您应该按周数建立索引吗?

php - 将超链接插入sql数据库 - php

php - Laravel 5.2 查询在本地主机上正常工作,而不是在远程服务器上

php - 用于文本自然语言处理的 Laravel 数据库设计

mysql - 使用 DB Facade 仅插入数据库一次