Requête sur deux tables
8 messages
• Page 1 sur 1
- jbtz64
- Nouveau WRInaute

- Messages: 21
- Inscription: 28 Mai 2008
Requête sur deux tables
bonsoir, je voudrais un conseil sur un requête dont j'ai besoin pour mon site.
j'ai deux tables : la première News contenant id_news, titre, contenu et date.
la deuxième Utilisateurs contenant : id_utilisateurs, nom_utilisateur, email_utilisateur, ville_utilisateur
et j'aimerais pouvoir afficher toutes ces infos si la news a été publiée aujourd'hui et par des utilisateurs vivant dans la même ville
Code :
SELECT COUNT(*) AS total
FROM Utilisateurs, News
WHERE Utilisateurs.nom_utilisateur = News.nom_utilisateur
AND ville_utilisateur='Paris'
AND date='$date';ca m'affiche bien toutes les news venant d'utilisateurs de la même ville, mais par contre pour la date il y a une légère erreur, ca m'affiche toutes les news de la table , si une news au moins a été écrite ce jour là ...
qu'en pensez-vous ? quelqu'un a une idée ?
merci, bonne soirée.
j'ai deux tables : la première News contenant id_news, titre, contenu et date.
la deuxième Utilisateurs contenant : id_utilisateurs, nom_utilisateur, email_utilisateur, ville_utilisateur
et j'aimerais pouvoir afficher toutes ces infos si la news a été publiée aujourd'hui et par des utilisateurs vivant dans la même ville
Code :
SELECT COUNT(*) AS total
FROM Utilisateurs, News
WHERE Utilisateurs.nom_utilisateur = News.nom_utilisateur
AND ville_utilisateur='Paris'
AND date='$date';ca m'affiche bien toutes les news venant d'utilisateurs de la même ville, mais par contre pour la date il y a une légère erreur, ca m'affiche toutes les news de la table , si une news au moins a été écrite ce jour là ...
qu'en pensez-vous ? quelqu'un a une idée ?
merci, bonne soirée.
-

Bacteries - WRInaute passionné

- Messages: 1369
- Inscription: 27 Mai 2004
Hummm, là ta requête va chercher les news d'utilisateurs venant de paris ayant écrit une news à la date $date.
La syntaxe me semble correct (sauf que faire une jointure sur un nom alors qu'on a des ID c'est pas du tout recommandé).
Vérifie après ce que contient de variable $date (est ce bien sous la forme aaaa-mm-jj? Est ce que tes tables ont bien un champs date de type date ou datetime?
La syntaxe me semble correct (sauf que faire une jointure sur un nom alors qu'on a des ID c'est pas du tout recommandé).
Vérifie après ce que contient de variable $date (est ce bien sous la forme aaaa-mm-jj? Est ce que tes tables ont bien un champs date de type date ou datetime?
- jbtz64
- Nouveau WRInaute

- Messages: 21
- Inscription: 28 Mai 2008
re:
j'ai quasiment aucun doute sur ma variable date, car cette requête me ramene toutes les news de ma table si une au moins a été écrite au jour demandé, c'est bien ça le problème.
pour la jointure c'est préférable que je rajoute un id dans les deux tables, c'est bien ça ?
pour la jointure c'est préférable que je rajoute un id dans les deux tables, c'est bien ça ?
-

Aye-Aye - WRInaute passionné

- Messages: 1917
- Inscription: 15 Avr 2005
Cette ligne qui met en place une jointure suppose que tu aies un champ commun dans les 2 tables qui ici serait nom_utilisateur...
Mais comme le dit Bactéries, il vaut mieux que cela soit id_utilisateurs qui permettent la jointure (si j'ai bien compris une news est écrite par un utilisateur... c'est cela ?).
Mets à jour ta table News, en incluant un champ id_utilisateurs qui te permettra de faire ta jointure...
Mais comme le dit Bactéries, il vaut mieux que cela soit id_utilisateurs qui permettent la jointure (si j'ai bien compris une news est écrite par un utilisateur... c'est cela ?).
Mets à jour ta table News, en incluant un champ id_utilisateurs qui te permettra de faire ta jointure...
- Code: Tout sélectionner
SELECT COUNT(*) AS total
FROM Utilisateurs, News
WHERE Utilisateurs.id_utilisateurs = News.id_utilisateurs
AND Utilisateurs.ville_utilisateur='Paris'
AND News.date='$date';
-

cyberlahy - WRInaute discret

- Messages: 80
- Inscription: 4 Avr 2006
Je pense plutôt par une 3è table
News(id_news, titre, contenu, date)
Utilisateurs(id_utilisateurs, nom_utilisateur, email_utilisateur, ville_utilisateur)
News_Utilisateurs(id, id_news, id_utilisateurs, date)
Dont la news que l'utilisateur a publié pour la date donnée
News(id_news, titre, contenu, date)
Utilisateurs(id_utilisateurs, nom_utilisateur, email_utilisateur, ville_utilisateur)
News_Utilisateurs(id, id_news, id_utilisateurs, date)
Dont la news que l'utilisateur a publié pour la date donnée
-

Aye-Aye - WRInaute passionné

- Messages: 1917
- Inscription: 15 Avr 2005
cyberlahy a écrit:Je pense plutôt par une 3è table
News(id_news, titre, contenu, date)
Utilisateurs(id_utilisateurs, nom_utilisateur, email_utilisateur, ville_utilisateur)
News_Utilisateurs(id, id_news, id_utilisateurs, date)
Dont la news que l'utilisateur a publié pour la date donnée
Deux tables suffisent si la news a été publiée par un utilisateur et un seul.
Une troisième table sera utile en cas de publication collective possible d'un news (donc par plusieurs utilisateurs) à des dates diverses...
Mais dans ce cas et uniquement dans ce cas, le champ date n'a plus à figurer dans la table News, non ?
Enfin, il doit être possible de concaténer id_news et id_utilisateurs pour former la clé primaire de la 3ème table News_Utilisateurs qui recense la participation d'un rédacteur à un article.
Le tout est de bien préciser la situation et de définir ce que l'on entend par 'date' par exemple... et je dois dire que je ne suis pas trés sur de voir qui fait quoi dans ce cas de figure...
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Requete 2 tables
- Requete SQL sur 2 tables
- [Résolu] PB requete SQL 3 tables + 2 count
- SQL Requête dans plusieurs tables
- [MySQL] Requête SELECT entre 3 tables liées
- Requête sur deux tables problème champ / chaine
- Problème de jointure entre deux tables requête SQL
- Problème avec requête SQL multiple (3 tables) et comptage
- Requête SQL pour connexion entre 3 tables liées..
- Requete de classement SQL sur trois tables avec SUM, COUNT..
- Google API : guide de développement de l'API Google - 20-09-2002
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Informations sur l'infrastructure technique de Google - 01-11-2004
- Google indexe le Flash - 28-04-2004
- + de résultats pour un même site sur Google - 23-08-2010
- Yagoort : Yet Another Google Rank Test - 24-03-2005
- La tension monte entre Google et les sites d'avis d'internautes - 01-02-2011
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
