2010-07-18 5 views
0

Ce serait difficile avec du SQL pur et je ne suis pas vraiment sûr de savoir comment le faire avec CoreData. Est-il possible de créer un prédicat ou dois-je le faire par programmation? Supposons (en utilisant l'exemple du manuel) que j'ai une base de données d'employés, dont certains sont des gestionnaires et d'autres non. Je veux une liste de gestionnaires qui ont un employé nommé "John" (ou peu importe) dans leur département. Aucun manager ne sera jamais nommé "John".Besoin d'aide pour effectuer une tâche CoreData complexe

En termes SQL Je commence par cette requête:

SELECT * FROM EMPLOYEES WHERE NAME IS LIKE "JOHN*" 

Ensuite, pour chaque enregistrement dans ce tableau, je dirais:

SELECT * FROM EMPLOYEES WHERE ROLE = "MANAGER" AND DEPARTMENT = (current department) 

Je pense que cela peut être fait en une seule Requête SQL mais je ne sais pas comment - mais en tout cas, je suis à la recherche d'une solution CoreData.

Merci!

Répondre

0

Dans base-données (syntaxe exacte non ecriture) procédez comme suit:

  1. tableau de depts avec d'extraction nom de l'employé avec John.
  2. récupérer les employés avec le rôle de gestionnaire et le département existe dans le tableau retourné plus tôt.

Si vous recherchez la syntaxe exacte faites le moi savoir.

Voici la requête DB unique. Cette requête va rechercher l'employé avec le gestionnaire de rôle et le département même comme département sur l'employé avec John dans son début de nom.

SELECT * 
FROM EMPLOYEE 
WHERE ROLE = MANAGER 
     AND DEPARTMENT IN (SELECT DEPARTMENT 
         FROM EMPLOYEE 
         WHERE NAME IS LIKE "JOHN*") 
+0

Merci beaucoup! Très utile, et il m'a conduit à cette réponse qui a aidé avec la syntaxe CoreData: http://stackoverflow.com/questions/1580236/how-to-setup-a-predicate-for-this-query – ed94133

Questions connexes