我得到了这样的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:不是按表达式分组的
我不太喜欢甲骨文,我想MySQL不会有任何问题.有小费吗?
发布于 2016-05-29 20:52:41
在这种情况下,您不需要分组,您可以使用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发布于 2016-05-29 20:57:46
假设所有列都是重复的,则可以使用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;https://stackoverflow.com/questions/37514835
复制相似问题