Kalle_B: MySQL: SELECT mit IN()

Beitrag lesen

SELECT    slt1.nr             slot_nr
         ,kon1.id             kon_id
         ,kon1.besucher_id
FROM      tm_slots slt1
LEFT JOIN tm_kontakte kon1
ON        kon1.slot_nr=slt1.nr AND

----------------------------------^

WHERE     slt1.owner_id=5 AND kon1.besucher_id IN (3713,3714)
GROUP BY  slt1.nr

  
Das AND ist wohl zu viel?  
  
Sorry, so geht es nicht, bekomme Laufzeitprobleme, wenn zu jeder von 30 Stunden 600\*600 Personen "addiert" werden und erst danach die gesuchten Personen herausgefiltert werden. Der Codeschnippsel war ja eine Kürzung. Hier das gesamte SQL:  
~~~sql
SELECT  
 slt1.nr             slot_nr  
  
,kon1.id             kon_id  
,kon1.besucher_id  
,per1.bezeichnung    aussteller_name  
  
,evb1.id             evb_id  
,evb1.adress_id      evb_adr_id  
,evt1.name           event_name  
  
FROM      tm_slots slt1  
  
-- GEBUCHTE KONTAKTE  
LEFT JOIN tm_kontakte kon1  
ON        kon1.slot_nr=slt1.nr  
-- AUSSTELLER-NAME  
LEFT JOIN tm_adressen AS per1  
ON        per1.id=kon1.aussteller_id  
  
-- GEBUCHTE EVENTS  
LEFT JOIN tm_eventbuchungen evb1  
ON        ( evb1.von_slot_nr=slt1.nr OR evb1.bis_slot_nr=slt1.nr )  
-- EVENTNAME  
LEFT JOIN tm_events AS evt1  
ON        evt1.id=evb1.wunsch_event_id  
  
WHERE     slt1.owner_id=5 AND ( kon1.besucher_id IN (4235) OR evb1.adress_id IN (4235) )  
GROUP BY  slt1.nr

LG Kalle