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 > Base de données > SQL - naab
SQL - naab
Salut la commu !
Étant une quiche en SQL j'aurais besoin de vos lumières sur un point.

Prenons deux tables (tbl_1 et tbl_2) liées.
Pour chaque enregistrement sur tbl_1 j'ai plusieurs enregistrements sur tbl_2, voilà la structure des tables :
tbl_1(t1_chp1 , t1_chp2, t1_chp3 ..)
tbl_2(t2_chp1, t2_chp2, t2_chp3 ..)

la table 2 à donc une double clée primaire définie par t2_chp1 (qui fait la liaison avec tbl_1) et un autre champ (pour avoir une clée unique)

Le probleme est que je voudrais récuperer la totalitée de tbl_1 et le dernier (et que le dernier) enregistrement de tbl_2 et là ça coince.
J'ai tenté avec des MAX(), des sous requetes et encore d'autres trucs tordus mais ça passe pas..

Voilà .. si vous avez compris quelque chose à mon explication et que vous avez une réponse, postez ! :D

labise
Posté le 02 06 2009 à 14h06
LaGothine - Membre - www

Réponses - SQL - naab
t2_chp2 est un auto increment ou pas ?
Posté le 02 06 2009 à 14h24
Narno - Modérateur - www
si c'est le cas, tu fais ta requete
select * from tbl_1, tbl_2
where t1_chp1 = t2_chp1
order by t2_chp2 DESC Limit 1

un truc du genre quoi
Posté le 02 06 2009 à 14h25
Narno - Modérateur - www
ouaip j'ai tenté quelque chose de similaire (la clé est pas autoinc mais y a un champ date alors je m'en servais pareil avec DESC et LIMIT) mais ça merde aussi


SELECT *
FROM tbl_1, tbl_2
WHERE t1_chp1 = t2_chp1 And t2_chp_date = (SELECT t2_chp_date FROM tbl_2 ORDER BY t2_chp_date DESC LIMIT 0,1)

En fait je crois que le probleme viens du fait que je dois afficher tous les enregistrement de tbl_1, pour donner une idée c'est comme si dans un blog t'affiche tous les billets et à coté le dernier commentaire associé ..
Posté le 02 06 2009 à 14h42
LaGothine - Membre - www
 le plus simple c'est de faire une boucle sur ta table1 et de faire une requete pour chaque enregistrement afin d'aller prendre l'enregistrement qui t'intéresse dans la table2... enfin ca me parait diffcile à faire en une seule requete, tu aurais forcément un pb de trie même avec une jointure genre (ex du blog + parlant) :


SELECT blog.*, commentaires.* FROM blog LEFT JOIN commentaires ON(blog.ID=commentaire.ID) ORDER BY commentaires.date_commentaire DESC
Posté le 02 06 2009 à 16h23
benzor - Administrateur - www
j'avais déja croisé JOIN/ON mais j'avais jamais mis le nez dedans, on dirais que c'est le moment !

Merci benz j'étudie ça tout de suite.

ÉDIT: en fait JOIN ou pas le résultat est le même on dirais .. bon je voulais éviter de devoir traiter ça en php mais va faloir j'ai l'impression .. C'est partiiiiii
Posté le 02 06 2009 à 16h44
LaGothine - Membre - www
Ouais donc jai fait plusieurs requetes différentes, une par table presque et je trie apres via php. J'aurais appris que la méga-mono-requete c'est pas le top ^^
Posté le 03 06 2009 à 10h48
LaGothine - Membre - www
ça me rassure quelque part :D

La mono requête qui ouvre les voix du ciel :D n'existe pas :D
Posté le 03 06 2009 à 11h56
o0o - Administrateur - www
avec un lien ODBC on peux pas se connecter au ciel ?
bon jreprends python voir si y a une librairie au pire ..

(holaaa fin de journée, n'importe quoi)
Posté le 03 06 2009 à 18h44
LaGothine - Membre - www
 Ne sous-estimez pas le pouvoir du SQL :-).

J'ai peut-être rien compris mais ça me semble tout à fait faisable :

SELECT * FROM (SELECT c.*, b.* 
                FROM comments as c, blog as b
                WHERE c.blog_id = b.blog_id
                ORDER BY c.DATE DESC
            ) as temp
GROUP BY temp.blog_id
(testé avec MySQL5/InnoDB) Note : j'ai mis des machin.* dans la requète imbriquée pour simplifier l'exemple mais, au-delà du fait que c'est mal, ça peut aussi faire foirer la requète si les deux tables ont un champ avec le même nom. Ça se corrige facilement en utlisant des alias ou en ne sélectionnant que les champs pertinents.
Posté le 12 06 2009 à 11h49
symzo - Membre - www
Derniers sujets
top 20 de vos appli (...)
Auteur : o0o
Posté le 13 02 2010 à 17h10
16 Réponses (Nouveau sujet)
Sujet visité 1238 fois
formulaire (...)
Auteur : Pierrot
Posté le 10 03 2010 à 12h08
3 Réponses (Nouveau sujet)
Sujet visité 436 fois
Appel à candidatures
Auteur : multimedia
Posté le 10 03 2010 à 11h17
1 Réponse (Nouveau sujet)
Sujet visité 210 fois

Sujet bloqué
Mediacenter
Auteur : o0o
Posté le 26 02 2010 à 09h22
9 Réponses (Nouveau sujet)
Sujet visité 1257 fois
Feedback mobile
Auteur : Ishiro
Posté le 30 11 2009 à 11h35
71 Réponses (Nouveau sujet)
Sujet visité 4605 fois
kakamou kakamou (...)
Auteur : Neoblue
Posté le 23 11 2007 à 01h03
35 Réponses (Nouveau sujet)
Sujet visité 5265 fois
encore du tri (...)
Auteur : askhanir
Posté le 24 02 2010 à 20h15
3 Réponses (Nouveau sujet)
Sujet visité 494 fois
Interview & Tuto
Auteur : geoffroy
Posté le 18 02 2010 à 17h11
18 Réponses (Nouveau sujet)
Sujet visité 1071 fois
Dimensions exacte (...)
Auteur : giantwo
Posté le 22 02 2010 à 00h20
2 Réponses (Nouveau sujet)
Sujet visité 709 fois
V3
Auteur : geoffroy
Posté le 18 02 2010 à 19h06
24 Réponses (Nouveau sujet)
Sujet visité 785 fois
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006