Menu
EtoileAbonnementRSS
jeuxvideo.com  /  Tous les forums  /  Forum principal Informatique  /  Forum Création de sites web  / 

Topic Comment puis-je sélectionner des données à partir de ces 3 tables

Sujet : Comment puis-je sélectionner des données à partir de ces 3 tables

1
Lolopette
Lolopette
MP
26 octobre 2019 à 20:13:04

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 ?????????");
WebDeveloppeur
WebDeveloppeur
MP
26 octobre 2019 à 20:23:30

Avez-vous établi une relation sur les colonnes "user_id" entre toutes vos tables ?

Message édité le 26 octobre 2019 à 20:26:43 par WebDeveloppeur
boucif
boucif
MP
26 octobre 2019 à 20:58:53

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 ...

Lolopette
Lolopette
MP
26 octobre 2019 à 22:37:29

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

WebDeveloppeur
WebDeveloppeur
MP
26 octobre 2019 à 23:04:17

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.

Message édité le 26 octobre 2019 à 23:04:28 par WebDeveloppeur
Highscore
Highscore
MP
27 octobre 2019 à 07:47:13

La tu as trois tables avec la même structure, pourquoi ?

mov_eax_1
mov_eax_1
MP
27 octobre 2019 à 09:00:34

:rire:

Lolopette
Lolopette
MP
27 octobre 2019 à 17:29:45

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é :)

boucif
boucif
MP
27 octobre 2019 à 17:50:27

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

TidoDaWiseOlMan
TidoDaWiseOlMan
MP
27 octobre 2019 à 18:35:48

Effectivement c'est une jointure qu'il te faut (INNER ou LEFT suivant tes besoins).

deepblue
deepblue
MP
27 octobre 2019 à 19:48:20
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).

Lolopette
Lolopette
MP
27 octobre 2019 à 21:14:40

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 ?

boucif
boucif
MP
27 octobre 2019 à 22:51:01

En faite tu veux qu’on fasse ton taf

TidoDaWiseOlMan
TidoDaWiseOlMan
MP
27 octobre 2019 à 23:08:09

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

Lolopette
Lolopette
MP
28 octobre 2019 à 00:56:08

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

Lolopette
Lolopette
MP
28 octobre 2019 à 17:17:18
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 ?

boucif
boucif
MP
28 octobre 2019 à 17:51:09

fais pas un union mais un join :
https://sql.sh/cours/jointures/inner-join

l'union c'est pas pour ton cas

WebDeveloppeur
WebDeveloppeur
MP
28 octobre 2019 à 19:01:25

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.

rasputin54
rasputin54
MP
29 octobre 2019 à 23:42:07

C'est quoi le nom des tables ? Bizarre d'avoir les trois même.. Je dirais de faire une union.

1
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

Boutique
Nintendo Switch avec paire de Joy-Con Rouge Néon et Bleu Néon Amazon 299,98€
Luigi's Mansion 3 Amazon 44,99€
Ring Fit Adventure pour Nintendo Switch Amazon 59,99€