2014-04-17 4 views
1

j'ai application Android qui utilise la pré population de base de données SQLite le problème est que je dois faire une requête de sélection à partir de 3 tables où la première tablecomment utiliser la requête sqlite pour récupérer les données dont j'ai besoin de trois table?

lieu

  • _id
  • nom
  • ville

équipe

  • _id
  • group_id
  • Code
  • Nom

match de

  • _id
  • étape
  • venue_id
  • team1_id
  • team2_id
  • coup d'envoi

ce que je besoin est de faire une requête de sélection qui ont le nom du lieu, coup d'envoi du match de, nom de l'équipe et nom de l'équipe

où le premier nom est la première équipe et le second nom est la deuxième équipe

ceci est ma requête:

select v.name,m.[kickoff],t.name,stage 
from venue v,match m,team t 
where m.venue_id = v._id 
and 
t._id = m.team1_id 
and 
t._id = m.team2_id 
+0

Y at-il un problème avec la requête que vous avez affiché ou demandez-vous comment exécuter la requête? – CurlyPaul

+0

pas il y a une erreur dans ma requête, je pense que dans la dernière ligne et je me demande s'il y a une autre solution pour obtenir ce que je veux – user3499032

Répondre

1

Je pense que cette requête devrait être ce que vous recherchez:

SELECT v.Name, m.[kickoff], team1.name, team2.name, stage 
    FROM Match AS m 
    INNER JOIN Venue AS V ON m.venue_id = v._id 
    INNER JOIN Team AS team1 ON m.team1_id = team1._id 
    INNER JOIN Team AS team2 ON m.team2_id = team2._id 

Je pense que le problème que vous rencontrez avec votre requête d'origine est qu'il y a en réalité 2 équipes liées à une correspondance, mais vous n'en tenez compte que pour la dernière partie de votre requête:

t._id = m.team1_id 
and 
t._id = m.team2_id 

... ne sera vraie que si l'équipe joue elle-même.

+0

je vais donc faire 2 tables team1 et team2 pour obtenir mon résultat merci – user3499032

+0

Vous pouvez avoir une seule table - Equipes - et joignez-la deux fois dans la requête. Notez que dans l'exemple le nom de la table est le même mais je donne à chacun un alias. – CurlyPaul

+0

comment rejoindre la table d'équipe deux fois et obtenir le résultat sans avoir la même erreur ** ne sera vrai que si l'équipe joue elle-même. ** – user3499032

Questions connexes