添加select和join到现有的复杂查询

时间:2013-10-29 11:41:31

标签: mysql sql

Herro的朋友们, 我有一个别人以前做过的查询。 我需要将Alarmtzu添加到select和两个额外的连接中。 (参见下面的第二个sql) 由于查询非常复杂,我无法找到适合SQL语法的正确方法。

我也没有可用的数据库计划,因为这是一个非常古老的数据库。

SELECT r.refnam, 
       t.tstring,
       rc.cnt namecounter
FROM refdev r
INNER JOIN (SELECT refnam, 
                   COUNT(*) cnt
              FROM refdev rc
          GROUP BY refnam
           ) rc 
        ON rc.refnam = r.refnam
LEFT OUTER JOIN texte t
             ON r.sigtnr = t.textnr
WHERE rc.cnt = 3
ORDER BY r.refnam

SELECT d.alarmzu
FROM devtzu d, OUTER refdev_DEF RD
WHERE D.zustnr = R.zustnr
AND D.dvtypnr = RD.dvtypnr AND R.refnam = RD.refnam

1 个答案:

答案 0 :(得分:0)

不确定它是否正确,因为它们不是数据库架构。但我查看表格的方式可能是解决方案。如果我错了,请纠正我。

SELECT r.refnam, 
       t.tstring,
       rc.cnt namecounter,
       d.alarmzu
FROM refdev r
INNER JOIN (SELECT refnam, 
                   COUNT(*) cnt
              FROM refdev rc
          GROUP BY refnam
           ) rc 
        ON rc.refnam = r.refnam
LEFT OUTER JOIN texte t
             ON r.sigtnr = t.textnr
JOIN devtzu d ON d.zustnr = r.zustnr
LEFT OUTER JOIN refdev_DEF RD ON d.dvtypnr = RD.dvtypnr
WHERE r.refnam = RD.refnam
AND rc.cnt = 3
ORDER BY r.refnam