Abfrage liefert unterschiedliche Ergebnisse
Hallo zusammen,
ich habe ein sehr seltsames Problem. Eine SQL-Abfrage liefert beim Ausführen immer wieder ein anderes Ergebnis. In den meisten Fällen bekomme ich eine leere Menge zurück. Wenn ich den SQL-Debugge (z.B. die WHERE-Bedingung lösche), werden plötzlich vier Datensätze angezeigt. Führe ich danach den Ursprünglichen SQL aus, zeigt er wiederum zwei Datensätze an (was mein Erwartungswert wäre, da die WHERE-Bedingung zwei dieser Datensätze herausfiltern sollte). Führe ich sie erneut aus, liefert sie wieder ein leeres Ergebnis.
Ich habe soetwas noch nie erlebt und unter diese Umständen ist es ist mir natürlich auch nicht möglich, den SQL zu debuggen und die genaue Ursache zu finden. Dass kein Wert rauskommt ist absolut unlogisch.
Auf der Datenbank laufen derzeit keine weiteren Prozesse, und an den betroffenen Datensätzen ändert sich auch nichts.
Hat jemand soetwas schon einmal erlebt?
Hier noch der betroffene SQL... Ich hoffe man kann es hier im Forum lesen:
select oxv_oxdelivery_de.*
from (
select oxv_oxdelivery_de.*
from oxv_oxdelivery_de
left join oxdel2delset
on oxdel2delset.oxdelid=oxv_oxdelivery_de.oxid
where ( oxv_oxdelivery_de.oxactive = 1 or ( oxv_oxdelivery_de.oxactivefrom < '2018-03-23 09:59:34' and oxv_oxdelivery_de.oxactiveto > '2018-03-23 09:59:34' ))
and oxdel2delset.oxdelsetid = 'oxidstandard'
) as oxv_oxdelivery_de
where (
select if
(
EXISTS(
select 1
from oxobject2delivery,
oxv_oxcountry_de
where oxv_oxcountry_de.oxid=oxobject2delivery.oxobjectid
and oxobject2delivery.oxdeliveryid=oxv_oxdelivery_de.OXID
and oxobject2delivery.oxtype='oxcountry' LIMIT 1
),
"feb5ad731024378f38b9f8e95b0e90fe"
EXISTS(
select oxobject2delivery.oxid
from oxobject2delivery
where oxobject2delivery.oxdeliveryid=oxv_oxdelivery_de.OXID
and oxobject2delivery.oxtype='oxcountry'
and oxobject2delivery.OXOBJECTID='a7c40f631fc920687.20179984'
),
1
)
&&
if
(
EXISTS(
select 1
from oxobject2delivery,
oxuser
where oxuser.oxid=oxobject2delivery.oxobjectid
and oxobject2delivery.oxdeliveryid=oxv_oxdelivery_de.OXID
and oxobject2delivery.oxtype='oxuser' LIMIT 1
),
EXISTS(
select oxobject2delivery.oxid
from oxobject2delivery
where oxobject2delivery.oxdeliveryid=oxv_oxdelivery_de.OXID
and oxobject2delivery.oxtype='oxuser'
and oxobject2delivery.OXOBJECTID='facac723858b55c238189d430cc0dd8c'
),
1
) &&
if
(
EXISTS(
select 1
from oxobject2delivery,
oxv_oxgroups_de
where oxv_oxgroups_de.oxid=oxobject2delivery.oxobjectid
and oxobject2delivery.oxdeliveryid=oxv_oxdelivery_de.OXID
and oxobject2delivery.oxtype='oxgroups'
LIMIT 1
),
"e683b70ff14aa277cae8ab4d9c7c7de9", "6f959a51bb8388b30716266ba1b8772e", "829673c387c70d414eb1401edc38656c"
EXISTS(
select oxobject2delivery.oxid
from oxobject2delivery
where oxobject2delivery.oxdeliveryid=oxv_oxdelivery_de.OXID
and oxobject2delivery.oxtype='oxgroups'
and oxobject2delivery.OXOBJECTID in ('oxidnewcustomer', 'oxidcustomer', 'oxidsmallcust')
),
1
)
) order by oxv_oxdelivery_de.oxsort