我得到了这样的SQL查询:
SELECT Z.ID,
Z.ZADAVATEL,
Z.DATUM_ZADANI,
Z.LIN_OBL,
Z.DRUH_ZMENY,
Z.CISLO_ZMENY,
Z.PRILOHY
FROM ZMENY Z
JOIN ZMENY_DILY ZD
ON (ZD.ID_ZMENY=Z.ID)
WHERE 1=1 %sql
ORDER BY Z.ID DESC %lmt%ofs
表ZMENY有9行,ZMENY_DILY有11行。问题是我得到11行,但其中2行是重复的行,我试图摆脱这两个重复,我试图使用
GROUP BY Z.ID
不幸甲骨文说: ORA-00979:不是GROUP BY表达
我对甲骨文不太了解,我想MySQL不会有任何问题......任何提示?
答案 0 :(得分:1)
在这种情况下,您不需要分组,您可以使用select distinct
SELECT distinct
Z.ID,
Z.ZADAVATEL,
Z.DATUM_ZADANI,
Z.LIN_OBL,
Z.DRUH_ZMENY,
Z.CISLO_ZMENY,
Z.PRILOHY
FROM ZMENY Z JOIN ZMENY_DILY ZD ON (ZD.ID_ZMENY=Z.ID)
ORDER BY Z.ID DESC %lmt%ofs
答案 1 :(得分:0)
您可以使用select distinct
,假设所有列都是重复的:
SELECT DISTINCT Z.ID, Z.ZADAVATEL, Z.DATUM_ZADANI, Z.LIN_OBL,
Z.DRUH_ZMENY, Z.CISLO_ZMENY, Z.PRILOHY
FROM ZMENY Z JOIN
ZMENY_DILY ZD
ON ZD.ID_ZMENY = Z.ID
WHERE 1=1 -- %sql ???
ORDER BY Z.ID DESC;
或者,您可以使用IN
:
SELECT z.*
FROM ZMENY Z
WHERE Z.ID IN (SELECT ID_ZMENY FROM ZMENY_DILY ZD)
ORDER BY Z.ID DESC;