# SQL, Feld mehrmals abfragen, IN Frage



## The_S (14. Aug 2006)

Hi,

ich habe mal wieder zwei Fragen zu SQL-Statements.

1. Es mag vielleicht merkwürdig klingen und evtl. habe ich einen Denkfehler (bitte aufklären), aber funktioniert sowas 

*"SELECT Name FROM tbl_referent WHERE RID = 4 AND RID IN (SELECT RID FROM tbl_kurs WHERE EKAID = 3)"*

? Die ID muss praktisch mit einer Konstanten übereinstimmen, und sie muss sich auch in einem Subselect befinden.

2. Kann ich in einem subselect zwei Werte in Form einer Liste zurückbekommen und dann mit IN nur auf einen überprüfen? Also z. B.

*"SELECT Date FROM tbl_kurs WHERE KID IN (SELECT KID, COUNT(RID) as "anzahl" WHERE anzahl = 5 GROUP BY KID"*

Leider kann ich beide Statements momentan (mal wieder) nicht testen. Da ich sowas aber häufig benötige, wäre es sinnvoll zu wissen, ob die Beiden funktionieren oder nicht.

Danke!


----------



## KSG9|sebastian (14. Aug 2006)

1. funktioniert
2. geht nicht, da du mit IN ne Liste überprüfst welche nur Werte enthält, jedoch keine Spalten.

Ne Liste enthält ja nur Werte, z.B. SELECT .. FROM .. WHERE id in(1, 2, 4, 5)
Die Werte sind aber "spaltenunabhängig". Das was du brauchst wäre quasi ne 2dimensionale Liste. Das kannst du aber mit nem weiteren Subselect auch lösen.


----------



## The_S (14. Aug 2006)

Danke!


----------



## Slava (19. Aug 2006)

<<
"SELECT Name FROM tbl_referent WHERE RID = 4 *AND* RID IN (SELECT RID FROM tbl_kurs WHERE EKAID = 3)" 
>>
bei dieser bedingung macht AND kein Sinn
versuch mal mit "OR"


----------

