2009-11-24 5 views
2

J'ai deux tables dans ma base de données, et je voudrais récupérer des informations à partir des deux sans avoir à faire deux requêtes. Fondamentalement, les user_ID (s) récupérés à partir de la table des tâches doivent être utilisés pour obtenir ces noms d'utilisateur (s) respectifs de la table des utilisateurs. C'est ce que j'ai jusqu'à présent, mais la requête retourne false:Aide avec la requête MySQL

SELECT t.user_id, t.nursery_ss, t.nursery_ws, t.greeter, t.date 
    u.user_first_name, u.user_last_name 
    FROM tasks_tbl AS t 
    INNER JOIN users_tbl AS u ON t.user_id = u.user_id 
    WHERE t.date = '2009-11-29' 

Toutes les suggestions seraient appréciées. Merci.

+0

Qu'advient-il si vous supprimez la clause WHERE? En retournant false, voulez-vous dire que la requête ne renvoie aucun résultat? –

+2

La requête semble bonne. Essayez d'enlever 'WHERE t.date = '2009-11-29'' et voir le résultat. Peut-être qu'il n'y a pas de telles données dans DB –

+0

Publier la sortie de 'DESCRIBE TASKS_TBL' –

Répondre

3

Vous avez oublié une virgule après t.date dans votre liste de sélection:

SELECT t.user_id, t.nursery_ss, t.nursery_ws, t.greeter, t.date -- comma needed here 
    u.user_first_name, u.user_last_name 
FROM tasks_tbl AS t 
INNER JOIN users_tbl AS u ON t.user_id = u.user_id 
WHERE t.date = '2009-11-29' 
0

En fait, votre requête semble bonne; vous pourriez essayer de vérifier si d'autres aspects de la requête sont défectueux. Par exemple, essayez juste un SELECT * de votre jointure comme spécifié. Ou essayez d'omettre votre clause WHERE; vous obtiendrez plus de données que vous le souhaitez, mais cela peut vous aider à déboguer votre requête.