Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2126 connectés 

 


Débat n°1




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  9  10  11  ..  21  22  23  24  25  26
Auteur Sujet :

BlaBla@SQL

n°2020280
Alekusu2
Posté le 31-08-2010 à 23:13:45  profilanswer
 

Reprise du message précédent :
Ok, au moins c'est fixé :D


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
mood
Publicité
Posté le 31-08-2010 à 23:13:45  profilanswer
 

n°2020285
Alekusu2
Posté le 01-09-2010 à 00:56:00  profilanswer
 

Nouvelle problématique :
 

Code :
  1. $strSql2 = "SELECT actualites_nom";
  2. $strSql2 .= ", GROUP_CONCAT(pays.pays_nom)";
  3. $strSql2 .= ", GROUP_CONCAT(thematiques.thematiques_nom)";
  4. $strSql2 .= " FROM actualites;
  5. $strSql2 .= " LEFT JOIN actualitespays ON actualitespays.actualites_id = actualites.actualites_id";
  6. $strSql2 .= " LEFT JOIN pays ON pays.pays_id=actualitespays.pays_id";
  7. $strSql2 .= " LEFT JOIN actualitesthematiques ON actualitesthematiques.actualites_id = actualites.actualites_id";
  8. $strSql2 .= " LEFT JOIN thematiques ON thematiques.thematiques_id=actualitesthematiques.thematiques_id";
  9. $strSql2 .= " GROUP BY pays.pays_id";


 
la jointure fonctionne, sauf que si par exemple mon actu est liée à 3 pays et 2 thématiques, dans mon group concat pays, je vais avoir 2 fois chaque nom, et dans mon group concat thématiques 3 fois chaque nom
 
J'ai essayé de rajouter des conditions au group by, pour grouper par les thematiques_id et les pays_id, mais ça n'a pas l'air de fonctionner :D (ça fait pas ce que je veux, genre des news qui fusionnent, etc)
 
Une idée pour résoudre cette problématique ?


Message édité par Alekusu2 le 01-09-2010 à 00:57:55

---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2020290
skeye
Posté le 01-09-2010 à 07:09:01  profilanswer
 

ne pas utiliser group_concat.


---------------
Can't buy what I want because it's free -
n°2020301
FlorentG
Posté le 01-09-2010 à 08:40:50  profilanswer
 

Alekusu2 a écrit :

Code :
  1. "SELECT * FROM actualites LEFT JOIN actualitespays ON actualitespays.actualites_id = actualites.actualites_id";



Si mysql (le reste je sais pas), tu peux raccourcir en

Code :
  1. SELECT * FROM actualites LEFT JOIN actualitespays USING(actualites_id)


Un peu moins lourd à lire et à écrire [:petrus dei]

Message cité 1 fois
Message édité par FlorentG le 01-09-2010 à 08:41:16
n°2020461
Alekusu2
Posté le 01-09-2010 à 16:57:00  profilanswer
 

skeye a écrit :

ne pas utiliser group_concat.


J'en ai besoin, la problématique de la question c'est de garder group_concat :D
 

FlorentG a écrit :


Si mysql (le reste je sais pas), tu peux raccourcir en

Code :
  1. SELECT * FROM actualites LEFT JOIN actualitespays USING(actualites_id)


Un peu moins lourd à lire et à écrire [:petrus dei]


 
ah merci je connaissais pas du tout :jap:  
As-tu une idée pour ma deuxième problématique, juste quelques posts au dessus ? Merki d'avance :D


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2020473
skeye
Posté le 01-09-2010 à 17:07:57  profilanswer
 

Alekusu2 a écrit :


J'en ai besoin, la problématique de la question c'est de garder group_concat :D


Tu essayes de faire faire au sql ce qui est le boulot du langage qui l'appelle.[:skeye]


---------------
Can't buy what I want because it's free -
n°2020480
Alekusu2
Posté le 01-09-2010 à 17:22:52  profilanswer
 

skeye a écrit :


Tu essayes de faire faire au sql ce qui est le boulot du langage qui l'appelle.[:skeye]


Je dis pas le contraire, cependant c'est une fonctionnalité qui existe en SQL et qui répond parfaitement à mon besoin. Le traiter avec en PHP derrière j'ai essayé et ça complexifiait complètement la page :D  
Mais ça répond pas à ma question :D

Message cité 1 fois
Message édité par Alekusu2 le 01-09-2010 à 17:30:22

---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2020484
skeye
Posté le 01-09-2010 à 17:35:00  profilanswer
 

Alekusu2 a écrit :

c'est une fonctionnalité qui existe en SQL


Non.
C'est une "fonctionnalité" de mysql seulement.
Et en avoir besoin met généralement en évidence un problème de design.


---------------
Can't buy what I want because it's free -
n°2020485
Alekusu2
Posté le 01-09-2010 à 17:39:00  profilanswer
 

Peut être je dis pas le contraire hein, tu as totalement raison, mais ça répond pas à ma question initiale :D
 
Après tu as peut être uen technique en PHP de traitement des données qui fonctionnerait parfaitement et qui répondrait à ma problématique, avec une requete SQL "propre" ?
Si c'est le cas, je veux bien voir :jap:

Message cité 1 fois
Message édité par Alekusu2 le 01-09-2010 à 17:46:19

---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2020549
skeye
Posté le 01-09-2010 à 20:39:03  profilanswer
 

Alekusu2 a écrit :

Peut être je dis pas le contraire hein, tu as totalement raison, mais ça répond pas à ma question initiale :D
 
Après tu as peut être uen technique en PHP de traitement des données qui fonctionnerait parfaitement et qui répondrait à ma problématique, avec une requete SQL "propre" ?
Si c'est le cas, je veux bien voir :jap:


Il n'y a pas une difficulté monstrueuse, non? Il suffit d'itérer sur les lignes en traitant différemment celles qui correspondent à un id déjà traité...


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 01-09-2010 à 20:39:03  profilanswer
 

n°2020556
flo850
moi je
Posté le 01-09-2010 à 21:30:17  profilanswer
 

skeye a écrit :


Non.
C'est une "fonctionnalité" de mysql seulement.
Et en avoir besoin met généralement en évidence un problème de design.


+1  
c'ets typiquement le genre de truc que tu traite en php

n°2020557
theredled
● REC
Posté le 01-09-2010 à 21:36:23  profilanswer
 

Sur que très vite tu auras besoin d'un peu plus que le nom des éléments liés (un id pour faire un lien, une image...) et là GROUP_CONCAT c'est encore plus mort.

Message cité 1 fois
Message édité par theredled le 01-09-2010 à 21:36:38

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2020558
Alekusu2
Posté le 01-09-2010 à 21:40:14  profilanswer
 

theredled a écrit :

Sur que très vite tu auras besoin d'un peu plus que le nom des éléments liés (un id pour faire un lien, une image...) et là GROUP_CONCAT c'est encore plus mort.


non mais quand j'ai besoin de plus je fais la manip de skeye, mais là en l'occurence ça repondait parfaitement à mon besoin :d
 
Donc juste si quelqu'un a la solution à ma problématique :D


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2020560
theredled
● REC
Posté le 01-09-2010 à 21:46:18  profilanswer
 

Allez, GROUP_CONCAT(DISTINCT blabla). Ca te prend que les noms différents les uns de autres.

 

Je suis sympa parce que c'est crado.

 

Sinon tu es bien sûr de comprendre les raisons des problèmes que tu rencontres ?


Message édité par theredled le 01-09-2010 à 21:47:11

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2020565
Alekusu2
Posté le 01-09-2010 à 21:58:19  profilanswer
 

Youhaaaaa Enfin la réponse à ma question :love: Ca marche merki beaucoup !!!
 
Pour ce probleme ci, je comprenais tout à fait le probleme, mais j'ai pas pensé qu'on pouvait mettre un distinct à ce moment là.  
 
Après parfois certains problèmes je ne comprends pas tout :D


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2029287
skeye
Posté le 14-10-2010 à 15:12:58  profilanswer
 

Crosspost parce-que je le vaux bien :  
 
Quelqu'un saurait m'expliquer pourquoi oracle sait faire ça :
 

Code :
  1. INSERT INTO majolietable(unblob)
  2. SELECT monblob FROM TABLE@mondblink
  3. WHERE toto = 3


 
...et pleure quand on lui demande ça :
 

Code :
  1. INSERT INTO majolietable(unblob)
  2. SELECT monpackage.getblob@mondblink(3)
  3. FROM dual;


 
 
[:pingouino dei]


---------------
Can't buy what I want because it's free -
n°2030752
flo850
moi je
Posté le 20-10-2010 à 09:57:17  profilanswer
 
n°2030786
skeye
Posté le 20-10-2010 à 10:44:50  profilanswer
 


Très intéressant, j'aime beaucoup le concept de pouvoir utiliser Sql ou nosql suivant le besoin.


---------------
Can't buy what I want because it's free -
n°2030788
flo850
moi je
Posté le 20-10-2010 à 10:47:18  profilanswer
 

nosql avec les outils de design et de maintenance de mysql

n°2032440
krifur
Posté le 26-10-2010 à 22:41:21  profilanswer
 

imaginons une table avec un champ categorie (qui peut etre egal a 130,131,132,...) est il possible de faire une requete qui retourne 3 occurences de la catégorie 130 et 1 occurrence de la catégorie 131 le tout tirer au sort (rand ()) ?

n°2032482
Oliiii
Posté le 27-10-2010 à 08:20:13  profilanswer
 

T'as plusieurs catégorie 130 dans ta table ou c'est un champ unique?

n°2032488
krifur
Posté le 27-10-2010 à 09:40:05  profilanswer
 

ouaip j'ai plusieurs catégorie 130 dans la table

n°2032490
skeye
Posté le 27-10-2010 à 10:04:50  profilanswer
 

quel sgbd?


---------------
Can't buy what I want because it's free -
n°2032505
krifur
Posté le 27-10-2010 à 10:37:44  profilanswer
 

mysql, pour l'instant j m'en tire avec 2 requêtes:
SELECT * FROM matable WHERE cat =130 ORDER BY RAND() LIMIT 3;
et
SELECT * FROM matable WHERE cat =131 ORDER BY RAND() LIMIT 1;

n°2032508
skeye
Posté le 27-10-2010 à 10:42:37  profilanswer
 

Tu feras probablement pas beaucoup mieux.
Une union des deux, si tu y tiens vraiment.:D


---------------
Can't buy what I want because it's free -
n°2032511
krifur
Posté le 27-10-2010 à 10:54:00  profilanswer
 

merci une UNION ca me facilite vachement le traitement après (mysql_num_rows blabla), c'est ce que je voulais, thx

n°2034414
Alekusu2
Posté le 06-11-2010 à 15:03:09  profilanswer
 

Bonjour à tous !
 
Question sous mysql :
 
Table d'actu, on veut garder les 10 dernières actus de la catégorie X et supprimer les suivantes de la catégorie X.
 
On pourrait faire d'abord un select pour recup les 10 id puis supprimer tout sauf ces 10 id, mais existe-t-il un moyen plus simple ?
 
Merci d'avance !


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2034415
flo850
moi je
Posté le 06-11-2010 à 15:24:20  profilanswer
 


 
delete FROM table mere WHERE id NOT IN ( SELECT id FROM table fille  ORDER BY date desc LIMIT 10)  
 
le delete ... limit ne permet pas de faire delete ... limit 10,10000

n°2034417
masklinn
í dag viðrar vel til loftárása
Posté le 06-11-2010 à 15:29:28  profilanswer
 

Alekusu2 a écrit :

Bonjour à tous !
 
Question sous mysql :
 
Table d'actu, on veut garder les 10 dernières actus de la catégorie X et supprimer les suivantes de la catégorie X.
 
On pourrait faire d'abord un select pour recup les 10 id puis supprimer tout sauf ces 10 id, mais existe-t-il un moyen plus simple ?
 
Merci d'avance !


Avec SQLite:

DELETE FROM actus WHERE rowid IN (SELECT rowid FROM actus WHERE category='X' ORDER BY created_at DESC LIMIT -1 OFFSET 10);


tu peux probablement sortir un truc semblable avec mysql.

flo850 a écrit :


 
delete FROM table mere WHERE id NOT IN ( SELECT id FROM table fille  ORDER BY date desc LIMIT 10)  
 
le delete ... limit ne permet pas de faire delete ... limit 10,10000


Avec ta query tu vas pas deleter les 10 plus récents?

Message cité 3 fois
Message édité par masklinn le 06-11-2010 à 15:30:08

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2034418
theredled
● REC
Posté le 06-11-2010 à 15:33:52  profilanswer
 


masklinn a écrit :


Avec ta query tu vas pas deleter les 10 plus récents?


NOT IN :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2034419
flo850
moi je
Posté le 06-11-2010 à 15:35:25  profilanswer
 

masklinn a écrit :


Avec SQLite:

DELETE FROM actus WHERE rowid IN (SELECT rowid FROM actus WHERE category='X' ORDER BY created_at DESC LIMIT -1 OFFSET 10);


tu peux probablement sortir un truc semblable avec mysql.


je crois que non en mysql (et la doc me confirme dans ce que je pense )

masklinn a écrit :


Avec ta query tu vas pas deleter les 10 plus récents?


déjà bourré, il n'est même pas 16h
par contre, je n'ai pas mis le filtre de catégorie, mais aleksuksu devrait y arriver


Message édité par flo850 le 06-11-2010 à 15:36:06
n°2034420
koskoz
They see me trollin they hatin
Posté le 06-11-2010 à 15:35:37  profilanswer
 

masklinn a écrit :


Avec SQLite:

DELETE FROM actus WHERE rowid IN (SELECT rowid FROM actus WHERE category='X' ORDER BY created_at DESC LIMIT -1 OFFSET 10);


tu peux probablement sortir un truc semblable avec mysql.


 

masklinn a écrit :


Avec ta query tu vas pas deleter les 10 plus récents?


 
Il sélectionne les 10 derniers idée de la table fille (qui apparemment dans le cas d'alesku2 est la même que la mère) et ne les supprimes pas grâce au "NOT IN".


---------------
Twitter
n°2034421
masklinn
í dag viðrar vel til loftárása
Posté le 06-11-2010 à 15:38:58  profilanswer
 


Ah ouais merde, raté le not :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2034534
Alekusu2
Posté le 07-11-2010 à 20:48:34  profilanswer
 

Export MySQL propre de structure & données
Je fais un import dans une autre base MySQL, pas de message d'erreurs sauf que ça me dit "L'importation s'est terminée avec succès, 0 requêtes exécutées."
 
Et donc évidemment, aucune table n'a été crée ni rien...  
 
Une idée de où ça peut venir ? :??:
 
A noter au cas où que tout est en UTF8, qu'il n'y a pas de tables du même nom et que ce n'est pas un problème de limite d'upload (elle est à 2méga et le fichier fait 200k)
Et que j'importe/exporte via Phpmyadmin (toutefois il me semble que ce sont 2 versions différentes de PHPmyadmin)


Message édité par Alekusu2 le 07-11-2010 à 20:52:09

---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2034535
koskoz
They see me trollin they hatin
Posté le 07-11-2010 à 20:55:23  profilanswer
 

T'as bien les instructions create or replace table et insert values dans ton dump ?


---------------
Twitter
n°2034536
Alekusu2
Posté le 07-11-2010 à 20:57:05  profilanswer
 

koskoz a écrit :

T'as bien les instructions create or replace table et insert values dans ton dump ?


yes, et je protége les noms des tables et des champs par des "`"


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2034538
Alekusu2
Posté le 07-11-2010 à 21:00:59  profilanswer
 

Quand je passe direct le contenu en injection SQL sans passer par le fichier .sql, ça marche par contre...
 
Bizarre non O_o


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2035665
koskoz
They see me trollin they hatin
Posté le 12-11-2010 à 15:02:07  profilanswer
 

Bon, ça doit sûrement vous paraitre tout con, mais sous Oracle, comment je fais pour comparer la date et l'heure courante avec une date et une heure donnée ?


---------------
Twitter
n°2035669
skeye
Posté le 12-11-2010 à 15:10:01  profilanswer
 

koskoz a écrit :

Bon, ça doit sûrement vous paraitre tout con, mais sous Oracle, comment je fais pour comparer la date et l'heure courante avec une date et une heure donnée ?


to_char / to_date?


---------------
Can't buy what I want because it's free -
n°2035671
koskoz
They see me trollin they hatin
Posté le 12-11-2010 à 15:13:09  profilanswer
 

Y a pas mieux que ça ?
 
WHERE sysdate < TO_DATE('12-11-2010 17:00', 'DD/MM/YYYY HH24:MI')


---------------
Twitter
n°2035672
skeye
Posté le 12-11-2010 à 15:14:51  profilanswer
 

koskoz a écrit :

Y a pas mieux que ça ?
 
WHERE sysdate < TO_DATE('12-11-2010 17:00', 'DD/MM/YYYY HH24:MI')


Je vois pas ce que tu entends par "mieux", là.[:autobot]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  9  10  11  ..  21  22  23  24  25  26

Aller à :
Ajouter une réponse
 

Sujets relatifs
Requete SQL de selection complexe[SQL SERVER] Ajout d'une colonne en PS...mais inutilisable
[ODBC] DSN pour se connecter à une base SQL[PDO/SQL] Aide selection et classement (JOIN ??)
Problème conditions requete SQLSQL/PHP BDD de réservation de chambres
Jointure 'LIKE' SQL => BOtable SQL Ajouter une colonne au lieu de creer une nouvelle table
Requête SQL complexe 
Plus de sujets relatifs à : BlaBla@SQL


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)