Kalle_B: MySQL: SELECT mit IN()

Hallöle,

ich habe einen Stundenplan (Tabelle tm_slots) und möchte wissen, ob die Personen 3713 oder 3714 Termine haben:

Stunde Person
1      -
2      3714
3      3713
3      3714

also haben BEIDE einen Termin in Stunde 3. Das bekomme ich aber nicht mit

SELECT  
 slt1.nr             slot_nr  
  
,kon1.id             kon_id  
,kon1.besucher_id  
  
FROM      tm_slots slt1  
  
-- GEBUCHTE KONTAKTE  
LEFT JOIN tm_kontakte kon1  
ON        kon1.slot_nr=slt1.nr AND kon1.besucher_id IN (3713,3714)  
  
WHERE     slt1.owner_id=5  
GROUP BY  slt1.nr

Drt Teil IN (3713,3714) gibt sich mit einem zufrieden.

Habe die Dokumentation von "IN" nicht gefunden. Habe ich "IN" nicht richtig angewendet?

LG Kalle

  1.   
    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  
    
    

    HTH

    1. 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