Salut,
Comment puis-je sélectionner des données à partir de ces 3 tables où user_id est identique et ordonner toutes ces données avec la date du plus récent au plus ancien ?
TABLE 1
id
user_id
message
date
TABLE 2
id
user_id
message
date
TABLE 3
id
user_id
message
date
$query = $db->prepare("SELECT * FROM table1, table2, table3 WHERE user_id=:user_id ORDER BY ?????????");
Avez-vous établi une relation sur les colonnes "user_id" entre toutes vos tables ?
Je ne sais pas sur quel bdd vous travailler mais il serait sympa de regarder comment fonctionne les jointures : Inner Join, Outer Join, Cross Join ...
Le 26 octobre 2019 à 20:23:30 WebDeveloppeur a écrit :
Avez-vous établi une relation sur les colonnes "user_id" entre toutes vos tables ?
non pq
Le 26 octobre 2019 à 22:37:29 Lolopette a écrit :
Le 26 octobre 2019 à 20:23:30 WebDeveloppeur a écrit :
Avez-vous établi une relation sur les colonnes "user_id" entre toutes vos tables ?non pq
Vous devriez chercher sur internet et faire des test car c'est un système à bien comprendre.
La tu as trois tables avec la même structure, pourquoi ?
Le 27 octobre 2019 à 07:47:13 Highscore a écrit :
La tu as trois tables avec la même structure, pourquoi ?
c'est un exemple pour pas faire trop compliqué pour que les gens répondent a la question posé
Le 27 octobre 2019 à 17:29:45 Lolopette a écrit :
Le 27 octobre 2019 à 07:47:13 Highscore a écrit :
La tu as trois tables avec la même structure, pourquoi ?c'est un exemple pour pas faire trop compliqué pour que les gens répondent a la question posé
tu as regardé le fonctionnement des jointures
Effectivement c'est une jointure qu'il te faut (INNER ou LEFT suivant tes besoins).
SELECT * FROM table1 WHERE user_id=1
UNION SELECT * FROM table2 WHERE user_id=1
UNION SELECT * FROM table3 WHERE user_id=1
…si les tables on le même nombre de colonnes (ou les select).
Merci mais cela répond pas a la question posé.
Comment puis-je sélectionner des données à partir de ces 3 tables où user_id est identique et ordonner toutes ces données avec la date du plus récent au plus ancien ?
En faite tu veux qu’on fasse ton taf
Le 27 octobre 2019 à 21:14:40 Lolopette a écrit :
Merci mais cela répond pas a la question posé.Comment puis-je sélectionner des données à partir de ces 3 tables où user_id est identique et ordonner toutes ces données avec la date du plus récent au plus ancien ?
ORDER BY
Le 27 octobre 2019 à 23:08:09 TidoDaWiseOlMan a écrit :
Le 27 octobre 2019 à 21:14:40 Lolopette a écrit :
Merci mais cela répond pas a la question posé.Comment puis-je sélectionner des données à partir de ces 3 tables où user_id est identique et ordonner toutes ces données avec la date du plus récent au plus ancien ?
ORDER BY
Merci je l'ai dans la requête mais ça me dit pas comment le faire pour les 3
select foo.*
from (
select user_id, date
from t1
where user_id = :user_id
union
select user_id, date
from t2 where user_id = :user_id
union
select user_id, date
from t3 where user_id = :user_id
) foo
order by foo.date desc
J'ai trouvé ca des commentaires ?
fais pas un union mais un join :
https://sql.sh/cours/jointures/inner-join
l'union c'est pas pour ton cas
Je pense que vous devriez étudier ce problème chez vous soigneusement au lieu de réclamer la réponse sur vos topics car vous n'apprenez rien à recevoir directement la solution.
C'est quoi le nom des tables ? Bizarre d'avoir les trois même.. Je dirais de faire une union.