Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (64)
Print (75)
Programmation
PHP (92)
ASP (2)
CSS (27)
Hardware
PC (39)
Mac (17)
Linux (5)
Divers
Blabla (291)
1100 Sujets
14221 Réponses
Programmation > PHP > 3 tables, 1 seule requêtes
3 tables, 1 seule requêtes
Yop,

J'ai 3 tables, pas bien différentes, mais suffisamment pour que UNION ne marche pas. N'ayant aucun lien entre elle, donc les JOIN...

En fait il s'agit de 3 tables produits, imaginons une table PC, une PORTABLE, et une COMPOSANT. Toute les 3 possèdent un champs nom, et une champs constructeur.

Je voudrais, en une seule requête, pour récupérer sur les 3 tables, les noms de toutes les entrées ayant pour constructeur un tel.

J'ai épuisé un peu toute mes cartes, j'espère que quelqu'un aura une bonne soluce :)

biz !
Posté le 10 02 2010 à 11h38
mob - Modérateur - www

Réponses - 3 tables, 1 seule requêtes
<< 1 2 >>
Pourquoi pas de left join?
Posté le 10 02 2010 à 12h10
giantwo - Membre
ben d'après ce que tu dis t'as un lien, le constructeur
Posté le 10 02 2010 à 14h20
Pierrot - Membre
 

<?
SELECT tbl1
.*, tbl2.*, tbl3.* FROM tbl1 
LEFT JOIN tbl2 ON 
(tbl1.CONTRUCTEUR tbl2.CONTRUCTEUR)
LEFT JOIN tbl3 ON (tbl2.CONTRUCTEUR tbl3.CONTRUCTEUR)
 
// GROUP BY blabla ORDER BY blabla
?>
Posté le 10 02 2010 à 14h21
benzor - Administrateur - www
ben > elle est censé retourner quoi cette requête ? Uniquement les entrées dont les constructeurs correspondent entre les 3 tables non ? En fait j'ai besoin, que sans clause where ou autre, la requête me retourne la totalité de ses entrées.. Par la suite pour y ajouter une clause pour afficher le résultat avec les entrées d'un seul constructeur.
Posté le 10 02 2010 à 15h47
mob - Modérateur - www
 Je sais pas si c'est une bonne idée, mais tu peux aussi faire ce genre de choses (au pire, si ça dépanne) :


SELECT champ1, champ2, champ3, '' as champ4, '' as champ5
FROM matable1

UNION

SELECT '' as champ1, '' as champ2, '' as champ3, champ4, champ5
FROM matable2
Après, dans ton code, tu te demmerdes. ^^'
Posté le 10 02 2010 à 19h06
Ishiro - Membre - www
Mob > mmm dans ce cas là tu fais 3 requêtes, et tu balance le résultat de tes 3 requête dans un unique tableau....
ou alors un UNION comme proposé par Ishiro ^^
Posté le 12 02 2010 à 11h49
benzor - Administrateur - www
Le tableau, c'est le bordel pour la pagination et le tri si j'ai *10 millions* d'entrées..
Posté le 12 02 2010 à 15h47
mob - Modérateur - www
heu je vois pas la différence :) Quand tu traite le résultat d'une requête avec un MySQL_Fetch_Array c'est bien un tableau qui est retourné ^^
Sinon balance moi ton fichier SQL que je vois un peu plus en détail le bouzin
Posté le 12 02 2010 à 17h23
benzor - Administrateur - www
Pour un mysql_fetch_array, quand il est associé à un limit, mysql optimise son résultat en testant où il doit stoper la requête. Alors que si je retourne tout dans un tableau unique, pour y trier les 3 tables pour ensuite afficher les 30 premiers éléments (ou 30 à 60, 60 à 90 etc...), je travaillerais avec une tableau à x millions de lignes.


Pour les tables, disons que chacune des 3 tables est composées :

- d'un champs id
- d'un champs id_constructeur
- d'un champs nom
- d'un champs date
- puis d'une tripotée d'autres champs différents entre chaque table.

Au final ce que je veux, c'est afficher tous les noms parmi les 3 tables de l'id_constructeur 1 trié par date

J'ai bien sûr un table constructeur avec l'id (qui vaut id_constructeur) et le nom.
Posté le 12 02 2010 à 17h52
mob - Modérateur - www
 Voila :


(SELECT nom, date FROM table1 WHERE id_constructeur='1' ORDER BY date ASC LIMIT 10) 
UNION 
(SELECT nom, date FROM table2 WHERE id_constructeur='1' ORDER BY date ASC LIMIT 10) 
UNION 
(SELECT nom, date FROM table3 WHERE id_constructeur='1' ORDER BY date ASC LIMIT 10) ORDER BY date ASC;
:)
Posté le 12 02 2010 à 19h47
benzor - Administrateur - www
<< 1 2 >>
Sujets PHP
<< 1 2 3 ... 9 10 >>
3 tables, 1 seule (...)
Auteur : mob
Posté le 10 02 2010 à 11h38
12 Réponses (Nouveau sujet)
Sujet visité 1180 fois
image not found
Auteur : doss
Posté le 07 01 2010 à 09h36
17 Réponses (Nouveau sujet)
Sujet visité 1778 fois
Un backend tous (...)
Auteur : RGSONE
Posté le 15 01 2010 à 21h19
14 Réponses (Nouveau sujet)
Sujet visité 1561 fois
presse
Auteur : ju2x
Posté le 09 12 2009 à 10h22
4 Réponses (Nouveau sujet)
Sujet visité 1626 fois
Ultimatum Ajax
Auteur : o0o
Posté le 07 12 2009 à 19h50
4 Réponses (Nouveau sujet)
Sujet visité 1249 fois
traitement texte php
Auteur : doss
Posté le 24 11 2009 à 11h26
7 Réponses (Nouveau sujet)
Sujet visité 1561 fois
Colorisation (...)
Auteur : tyler
Posté le 31 08 2008 à 15h00
9 Réponses (Nouveau sujet)
Sujet visité 1537 fois
PHP Template
Auteur : tyler
Posté le 19 10 2009 à 21h33
10 Réponses (Nouveau sujet)
Sujet visité 1820 fois
ebay trading api
Auteur : doss
Posté le 13 10 2009 à 10h20
2 Réponses (Nouveau sujet)
Sujet visité 1661 fois
Paypal basket?
Auteur : o0o
Posté le 19 10 2009 à 14h34
0 Réponse (Nouveau sujet)
Sujet visité 1091 fois
<< 1 2 3 ... 9 10 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006