Lister des données sur deux tables différentes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lister des données sur deux tables différentes

par worm1 » 15 août 2007, 13:09

Oui je me suis mal exprimé, j'ai pas beaucoup de données en base ( 20 -30 tout au plus) .

par Truc » 15 août 2007, 12:28

... ca reste largement acceptable vu le peu de données que je dois sortir :wink:
C'est surtout en rapport du nombre de données à traiter avant de sortir un "peu de données"

par worm1 » 15 août 2007, 01:46

Vous battez pas :lol: Pour mon cas un UNION est plus facile pour gérer ensuite le traitement des données. Effectivement c 'est plus gourmand en ressources mais ca reste largement acceptable vu le peu de données que je dois sortir :wink:

par Sékiltoyai » 15 août 2007, 00:56

Non, ce n'est peut être pas la meilleure facon de procéder, il faudra bencher pour savoir. Mais pour répondre à ta question, c'est juste que si on a deux requètes qu'il est particulièrement justifié d'unir :

Code : Tout sélectionner

SELECT nom FROM table1; SELECT nom FROM table2;
Alors il est très simple de les réunir sans s'emmeler les pinceaux :

Code : Tout sélectionner

(SELECT nom, 1 AS table FROM table1) UNION (SELECT nom, 2 FROM table2);
Après, dire ce qui est le mieux entre faire ceci et faire les 2 requètes séparément, c'est de la littérature, et c'est une autre affaire. :)

par Ryle » 15 août 2007, 00:31

oui, certes, on peut aussi simplement tester si couleur ou taille sont null ... mais à ce compte là, je vois pas l'intérêt d'un union qui à mon sens (j'ai pas vérifié mais j'imagine) sera plus couteux en ressource que deux requêtes distinctes, nottament parce qu'on pourra libérer les résultats de la première avant de passer à la seconde, et qu'on ne ramenera pas des colonnes inutiles de valeurs null...

'fin après c'est qu'une opinion tardive et je ne connais pas le contexte alors je vais pas insister, mais ce n'est pas à mon avis la meilleur façon de procéder :)

par Sékiltoyai » 15 août 2007, 00:20

Pour savoir d'où ca vient, c'est tout con :

Code : Tout sélectionner

(SELECT IDVETEMENT,NOM,QUANTITE,COULEUR,TAILLE, "vetement" AS Type FROM vetement) UNION (SELECT IDMOTIF,NOM,QUANTITE,NULL,NULL, "motif" FROM motif)

par Ryle » 15 août 2007, 00:18

euh... je vais poser une question bête mais... comment tu comptes faire ensuite pour savoir ce qui vient d'où ?

Tu me diras c'est peut être uniquement de l'affichage et y aura ni lien, ni formulaire ou autre, mais sinon je ne vois vraiment pas ensuite comment gérer un lien ou autre me disant id = 12 sans savoir si c'est celui d'un motif ou d'un vetement....

par worm1 » 14 août 2007, 23:51

Exact ,je savais pas qu'on pouvait faire comme ca avec UNION.

Merci :wink:

par Sékiltoyai » 14 août 2007, 23:31

Bah sinon, tu fais ca :

Code : Tout sélectionner

(SELECT IDVETEMENT,NOM,QUANTITE,COULEUR,TAILLE FROM vetement) UNION (SELECT IDMOTIF,NOM,QUANTITE,NULL,NULL FROM motif)

par worm1 » 14 août 2007, 19:04

Les données n'ont rien à voir entre les deux tables donc je peux pas faire de jointure. Et les deux requêtes vont pas fonctionner pour mes filtres . Je vais modifier la structure des mes tables pour avoir des champs identiques tant pis.

Merci pour l'aide :wink:

par Ryle » 14 août 2007, 17:17

Si tu veux les croiser, tu peux utiliser une simple jointure :

Code : Tout sélectionner

SELECT table1.champ1, table1.champ2, ... table2.champ1, ... FROM table1, table2 WHERE table1.champX = table2.champY ...
Si tu ne veux pas les croiser, il te faut faire deux requêtes...

Lister des données sur deux tables différentes

par worm1 » 14 août 2007, 16:57

Bonjour ,

Je voudrais sortir une liste de données issues deux tables avec des structures différentes donc je peux pas utiliser UNION. Y a t -il un moyen?

J'ai une table vetement avec IDVETEMENT,NOM,COULEUR,TAILLE,QUANTITE

et une table motif avec IDMOTIF,NOM,QUANTITE

et je voudrais sortir la liste des deux en les classant par QUANTITE ou NOM par exemple.

MErci pour votre aide