mysql - 查找具有共同属性的重复项

标签 mysql sql

我正在尝试在 Drupal 站点上选择重复的节点,基本上我需要选择共享公共(public)“tnid”(翻译节点 ID)并且共享相同“语言”的节点。

但是我不知道如何编写查询,我想我做了第一部分,找到具有共同 tnid 的节点,就像这样

SELECT origin.nid, origin.tnid, origin.title, origin.language
FROM node AS origin
JOIN (select nid, tnid from node
      group by tnid having count(tnid) > 1) common_tnid ON common_tnid.tnid = origin.tnid
#JOIN node common_lang ON common_lang.language = origin.language
                      AND common_lang.tnid = origin.tnid
WHERE origin.tnid != 0

考虑到语言部分是我的一大障碍,我如何将其添加到查询中?因此,我尝试了很多东西。评论。

最佳答案

试试这个:

SELECT
  table1.nid nid,
  table1.tnid tnid,
  table1.language language,
  table1.title title
FROM
  (
    SELECT *
    FROM
      table1
    GROUP BY
      tnid, language
    HAVING
      COUNT(*) > 1
  ) dupe
  LEFT JOIN
  table1
    ON dupe.tnid = table1.tnid
       AND dupe.language = table1.language

SQL fiddle :http://sqlfiddle.com/#!9/294cc/1/0

关于mysql - 查找具有共同属性的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793927/

相关文章:

sql - 更新在 CTE 中较早插入的行

mysql - 从表格中查找几个月的连续数据

sql - 将字符串转换为特定格式的日期

mysql - 比较数据库表中的两个日期是否相等

MySQL INSERT [...] SELECT 与混合数据(来自 SELECT 子句和手动插入的值)?

Mysql:在选择中设置一个变量

mysql - 使用fts+复合索引优化查询

python - 使用 django 模型有效获取数据

java - Java Netbeans 中的 hibernate 错误

php - 显示新行和空格?