Hallo Thomas,
danke dir für die antwort...
also der letzte stand ist der mit dem join von dir. dauert leider 1,7 sekunden :-(
SELECT * FROM kunde
WHERE kunde_TYPE_ID = 3
AND kunde_CATEGORY_TYPE_ID = 3000
AND kunde_HIDDEN = 0
AND kunde_ID IN
(
SELECT q1.kunde_ID
FROM
(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1
AND ware_TYPE_ID=104 #gemüse
AND (ware_STRING='Kartoffel' OR ware_STRING='Karotte')
) q1
JOIN(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1
AND ware_TYPE_ID=109 #obst
AND (ware_STRING='Apfel')
) q2
ON q1.kunde_ID=q2.kunde_ID
JOIN(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1
AND ware_TYPE_ID=113 #Haushaltswaren
AND (ware_STRING='Topf' OR ware_STRING='Schüssel' OR ware_STRING='Messer')
) q3
ON q2.kunde_ID=q3.kunde_ID
JOIN(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1 #Equipment
AND ware_TYPE_ID=431 #Elektronikwaren
AND (ware_STRING='Radio')
) q4
ON q3.kunde_ID=q4.kunde_ID
)
Der hier kommt auf 80ms:
SELECT * FROM kunde
WHERE kunde_TYPE_ID = 3
AND kunde_CATEGORY_TYPE_ID = 3000
AND kunde_HIDDEN = 0
AND kunde_ID IN
(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1
AND ware_TYPE_ID=104 #gemüse
AND (ware_STRING='Kartoffel' OR ware_STRING='Karotte')
)
AND YP_INSTANCE_ID IN
(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1
AND ware_TYPE_ID=109 #obst
AND (ware_STRING='Apfel')
)
AND YP_INSTANCE_ID IN
(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1
AND ware_TYPE_ID=113 #Haushaltswaren
AND (ware_STRING='Topf' OR ware_STRING='Schüssel' OR ware_STRING='Messer')
)
AND YP_INSTANCE_ID IN
(
SELECT kunde_ID FROM waren_assoc_all
WHERE warenkorb_TYPE_ID = 1 #Equipment
AND ware_TYPE_ID=431 #Elektronikwaren
AND (ware_STRING='Radio')
)
sind die laufzeiten komisch?
vielleicht fällt mir beim mittagessen was ein. bis später!