OVH Cloud OVH Cloud

pb requete en mysql

3 réponses
Avatar
J-F Portala
Bonjour,
j'ai le probleme suivant:
j'ai 2 tables dont voici le descriptif
table A (dans cette table la colonne e est à 0)
a1 b1 c1 d1 0
a2 b2 c2 d2 0
a3 b3 c3 d3 0
a4 b4 c4 d4 0
a5 b5 c5 d5 0

table B (dans cette table la colonne d est à 0)
a3 b3 c3 0 e3
a4 b4 c4 0 e4
a5 b5 c5 0 e5
a6 b6 c6 0 e6
a7 b7 c7 0 e7

les colonnes e et d pourraient trés bien ne pas faire partie de ces tables
(je les ai créé pensant que cela pourrait aider)

Voila le resultat auquel je souhaiterais arriver:
Avoir la liste de tous les elements différents et mettre à jour les colonnes
d et e si nécessaire.
a1 b1 c1 d1 0
a2 b2 c2 d2 0
a3 b3 c3 d3 e3
a4 b4 c4 d4 e4
a5 b5 c5 d5 e5
a6 b6 c6 0 e6
a7 b7 c7 0 e7

Je travaille avec mysql 4.0 et PHP 4.
Avant de faire des boucles et des requetes en PHP , je voulais savoir s'il y
avait une possibilité d'en faire un peu plus en mysql.

Merci de votre aide
Jeff

3 réponses

Avatar
Jacques Caron
Salut,

On Wed, 23 Mar 2005 07:39:38 +0100, J-F Portala wrote:

j'ai 2 tables dont voici le descriptif
table A (dans cette table la colonne e est à 0)
a1 b1 c1 d1 0
a2 b2 c2 d2 0
a3 b3 c3 d3 0
a4 b4 c4 d4 0
a5 b5 c5 d5 0

table B (dans cette table la colonne d est à 0)
a3 b3 c3 0 e3
a4 b4 c4 0 e4
a5 b5 c5 0 e5
a6 b6 c6 0 e6
a7 b7 c7 0 e7

Voila le resultat auquel je souhaiterais arriver:
Avoir la liste de tous les elements différents et mettre à jour les
colonnes
d et e si nécessaire.
a1 b1 c1 d1 0
a2 b2 c2 d2 0
a3 b3 c3 d3 e3
a4 b4 c4 d4 e4
a5 b5 c5 d5 e5
a6 b6 c6 0 e6
a7 b7 c7 0 e7



Euh...

SELECT table_a.a,table_a.b,table_a.c,table_a.d,table_b.e FROM
table_a,table_b WHERE table_a.a=table_b.a AND table_a.b=table_b.b AND
table_a.c=table_b.c

ou

SELECT table_a.a,table_a.b,table_a.c,table_a.d,table_b.e FROM table_a JOIN
table_b USING (a,b,c)

devraient le faire, non?

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Avatar
Ph. B.
J-F Portala a demandé:

Bonjour,
j'ai le probleme suivant:
j'ai 2 tables dont voici le descriptif
table A (dans cette table la colonne e est à 0)
a1 b1 c1 d1 0
a2 b2 c2 d2 0
a3 b3 c3 d3 0
a4 b4 c4 d4 0
a5 b5 c5 d5 0

table B (dans cette table la colonne d est à 0)
a3 b3 c3 0 e3
a4 b4 c4 0 e4
a5 b5 c5 0 e5
a6 b6 c6 0 e6
a7 b7 c7 0 e7

les colonnes e et d pourraient trés bien ne pas faire partie de ces tables
(je les ai créé pensant que cela pourrait aider)

Voila le resultat auquel je souhaiterais arriver:
Avoir la liste de tous les elements différents et mettre à jour les colonnes
d et e si nécessaire.
a1 b1 c1 d1 0
a2 b2 c2 d2 0
a3 b3 c3 d3 e3
a4 b4 c4 d4 e4
a5 b5 c5 d5 e5
a6 b6 c6 0 e6
a7 b7 c7 0 e7

Je travaille avec mysql 4.0 et PHP 4.
Avant de faire des boucles et des requetes en PHP , je voulais savoir s'il y
avait une possibilité d'en faire un peu plus en mysql.

Merci de votre aide
Jeff



Bonjour,

A la louche, en enlevant tes colonnes inutiles, avec une vue et une requête...

Soit, par hypothèse:
=================== table TA(A, B, C, D)
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
a4 b4 c4 d4
a5 b5 c5 d5
table TB(A, B, C, E)
a3 b3 c3 e3
a4 b4 c4 e4
a5 b5 c5 e5
a6 b6 c6 e6
a7 b7 c7 e7

Vue V_AB:
======== CREATE VIEW V_AB(A, B, C) AS
SELECT
A, B, C
FROM TA
UNION
SELECT
A, B, C
FROM TB
WHERE NOT EXISTS
(SELECT
A, B, C
FROM TA
WHERE A = TB.A AND B = TB.B AND C = TB.C);

Requete d'interrogation:
======================= SELECT
A, B, C,
(SELECT D FROM TA WHERE A = V.A AND B = V.B AND C = V.C) AS D,
(SELECT E FROM TB WHERE A = V.A AND B = V.B AND C = V.C) AS E
FROM V_AB V

Remarque:
======== Tu obtiens NULL en lieu et place de 0, soit
a1 b1 c1 d1 Null
a2 b2 c2 d2 Null
a3 b3 c3 d3 e3
a4 b4 c4 d4 e4
a5 b5 c5 d5 e5
a6 b6 c6 Null e6
a7 b7 c7 Null e7

A toi d'adapter...
--
Philippe.
Avatar
J-F Portala
Merci de votre aide.
Je vais tout de suite tester
Jeff