Requêtes multi tables SQL
Fermé
WDAssos
Messages postés
59
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 septembre 2013
-
Modifié par jipicy le 16/12/2013 à 17:45
ndsaerith Messages postés 308 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 - 11 sept. 2013 à 15:28
ndsaerith Messages postés 308 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 - 11 sept. 2013 à 15:28
A voir également:
- Requêtes multi tables SQL
- Tables des matières word - Guide
- Multi exp pokemon diamant ✓ - Forum Jeux vidéo
- Requête sql pix - Forum Python
- Multi exp pokemon heartgold - Forum Pokémon
- Blob sql ✓ - Forum Webmastering
8 réponses
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
5 sept. 2013 à 15:13
5 sept. 2013 à 15:13
Bonjour,
Je vois pas en quoi un "Out of memory" n'est pas assez explicite...
T'as tables sont grosses par rapport à ton architecture ?
Je vois pas en quoi un "Out of memory" n'est pas assez explicite...
T'as tables sont grosses par rapport à ton architecture ?
WDAssos
Messages postés
59
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 septembre 2013
Modifié par jipicy le 16/12/2013 à 17:45
Modifié par jipicy le 16/12/2013 à 17:45
Je pense que c'est la requête qui n'est pas bonne dans sa nomenclature.
Les mêmes tables, interrogées via d'autres requêtes, répondent individuellement très rapidement. Ils y a moins de 1500 entrées par tables.
Les mêmes tables, interrogées via d'autres requêtes, répondent individuellement très rapidement. Ils y a moins de 1500 entrées par tables.
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
6 sept. 2013 à 16:02
6 sept. 2013 à 16:02
Salut,
Si tu n'as pas besoin de récupérer tous les champs des tables, il est conseillé de définir explicitement les champs à récupérer dans la clause SELECT plutôt que d'utiliser le sélecteur *. Ça permettra d'économiser un peu de mémoire.
Bonne journée
Si tu n'as pas besoin de récupérer tous les champs des tables, il est conseillé de définir explicitement les champs à récupérer dans la clause SELECT plutôt que d'utiliser le sélecteur *. Ça permettra d'économiser un peu de mémoire.
Bonne journée
WDAssos
Messages postés
59
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 septembre 2013
Modifié par jipicy le 16/12/2013 à 17:45
Modifié par jipicy le 16/12/2013 à 17:45
Bien noté. Merci ;)
Et comment faire pour sélectionner les 3 tables ?
Et comment faire pour sélectionner les 3 tables ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
9 sept. 2013 à 13:50
9 sept. 2013 à 13:50
Bonjour,
tu peux faire comme ceci,
Si je peux te conseiller une documentation, voici : https://www.w3schools.com/sql/sql_select.asp
Cdlt,
tu peux faire comme ceci,
SELECT table1.champ1, table2.champ1, table3.champ1, table3.champ2 FROM table1, tablle2, table3
Si je peux te conseiller une documentation, voici : https://www.w3schools.com/sql/sql_select.asp
Cdlt,
WDAssos
Messages postés
59
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 septembre 2013
Modifié par jipicy le 16/12/2013 à 17:45
Modifié par jipicy le 16/12/2013 à 17:45
Je viens d'essayer le code suivant, mais cela mouline beaucoup et ne semble rien retourner, pourtant les recherches effectuées sont des mot clefs présents dans la base :
Ou est l'erreur ?
$requet = "SELECT Jeux.Titre, Ordinateurs.Modele, Consoles.Modele".
" FROM Jeux, Ordinateurs, Consoles".
" WHERE Jeux.Titre = '%$rch%' OR Ordinateurs.Modele = '%$rch%' OR Consoles.Modele = '%$rch%'";
" LIMIT 10";
$req = mysql_query($requet) or die('Erreur SQL !<br />'.$requet.'<br />'.mysql_error());
Ou est l'erreur ?
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
11 sept. 2013 à 14:07
11 sept. 2013 à 14:07
Salut,
Si tu veux faire une recherche avec le wildcard % il faut utiliser l'opérateur LIKE à la place de =
$requet = "SELECT Jeux.Titre, Ordinateurs.Modele, Consoles.Modele".
" FROM Jeux, Ordinateurs, Consoles".
" WHERE Jeux.Titre LIKE '%$rch%' OR Ordinateurs.Modele LIKE '%$rch%' OR Consoles.Modele LIKE '%$rch%' LIMIT 10";
Bonne journée
Si tu veux faire une recherche avec le wildcard % il faut utiliser l'opérateur LIKE à la place de =
$requet = "SELECT Jeux.Titre, Ordinateurs.Modele, Consoles.Modele".
" FROM Jeux, Ordinateurs, Consoles".
" WHERE Jeux.Titre LIKE '%$rch%' OR Ordinateurs.Modele LIKE '%$rch%' OR Consoles.Modele LIKE '%$rch%' LIMIT 10";
Bonne journée
ndsaerith
Messages postés
308
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
28
11 sept. 2013 à 15:28
11 sept. 2013 à 15:28
BOnjour,
En complément de la réponse de Pitet, je pense aussi que l'utilisation d'un from avec toutes les tables à suivre comme ça n'est pas top. au pire, s'il n'y a pas de relations entre ces tables, il faudrait faire 3 requêtes (1 sur chaque table), et les lier avec un union (+ utiliser un alias de colonne))
Hésites pas à demander si tu as besoin pour le union et/ou l'alias.
Et je redit : c'est en complément de la réponse précédente ;) il faut aussi utiliser le like.
En complément de la réponse de Pitet, je pense aussi que l'utilisation d'un from avec toutes les tables à suivre comme ça n'est pas top. au pire, s'il n'y a pas de relations entre ces tables, il faudrait faire 3 requêtes (1 sur chaque table), et les lier avec un union (+ utiliser un alias de colonne))
Hésites pas à demander si tu as besoin pour le union et/ou l'alias.
Et je redit : c'est en complément de la réponse précédente ;) il faut aussi utiliser le like.