 |
Catégories
|
 |
|
Graphisme Programmation  PHP (92)Hardware Divers
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
|
 |
|
|
|
 |
 |
 |
 |
Réponses - 3 tables, 1 seule requêtes |
 |
|
 |
 |
Pourquoi pas de left join?
Posté le 10 02 2010 à 12h10
|
 |
|
 |
 |
ben d'après ce que tu dis t'as un lien, le constructeur
Posté le 10 02 2010 à 14h20
|
 |
|
 |
 |
<?
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
|
 |
|
 |
 |
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
|
 |
|
 |
 |
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
|
 |
|
 |
 |
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
|
 |
|
 |
 |
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
|
 |
|
 |
 |
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
|
 |
|
 |
 |
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
|
 |
|
 |
 |
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
|
 |
|
|
|
 |
 |
 |
|
 |
Sujets PHP |
 |
|
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
|
|
 |
 |
 |
|