Unir varios registros en un CursorAdapter

Estoy tratando de construir un ListView que representa una lista de recetas. Tengo el concepto de usar un SimpleCursorAdapter para lograr eso.

Sin embargo, además de mostrar la imagen de la receta y el título de cada elemento, me gustaría mostrar una cadena de ingredientes asociados a la receta, separada por comas. Dado que un cursor es sólo para una tabla (o vista), no estoy muy seguro de cómo abordar esto.

Las tablas / columnas relevantes son las siguientes:

 recipes ( _id integer primary key, name text not null ) ingredients ( _id integer primary key, name text not null ) recipes_ingredients ( _id integer primary key, recipe_id integer not null, ingredient_id integer not null ) 

Editar: Los dos primeros comentarios sobre esta pregunta me llevan a creer que no hay suficiente información acerca de por qué creo que un sencillo JOIN no será suficiente. Dada la estructura de la tabla, una receta puede tener múltiples ingredientes, no sólo uno. Eso significa que si intento realizar una combinación para una sola receta, terminaré con algo como lo siguiente:

 SELECT r.name AS recipe, i.name AS ingredient FROM recipes r INNER JOIN recipes_ingredients ri ON ri.recipe_id=r._id INNER JOIN ingredients i ON ri.ingredient_id=i._id; recipe | ingredient ------------------+--------------------- Chocolate Milk | milk Chocolate Milk | chocolate syrup Chicken Parmesan | chicken breast Chicken Parmesan | italian breadcrumbs Chicken Parmesan | egg Chicken Parmesan | shredded mozzarella Chicken Parmesan | pasta sauce 

Un simple cursor acabaría mostrando "Chocolate Milk" dos veces y "Chicken Parmesan" cinco veces. Esto definitivamente no es lo que quiero. Quiero que cada uno de ellos para mostrar una vez con todos los ingredientes separados por comas. es decir:

  recipe | ingredients ------------------+--------------------------------------------------------------------------- Chocolate Milk | milk, chocolate syrup Chicken Parmesan | chicken breast, italian breadcrumbs, egg, shredded mozzarella, pasta sauce 

    Lo que necesita es group_concat: http://www.sqlite.org/lang_aggfunc.html

    Esto debería funcionar:

     SELECT r._id, r.name AS recipe, group_concat(i.name, ",") AS ingredient FROM recipes r INNER JOIN recipes_ingredients ri ON ri.recipe_id=r._id INNER JOIN ingredients i ON ri.ingredient_id=i._id GROUP BY r._id; 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.