[SQL]Verifier la presence d'une entrée dans plusieurs tables
16 messages
• Page 1 sur 2 • 1, 2
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
[SQL]Verifier la presence d'une entrée dans plusieurs tables
Bonjour à tous
Etant donné que je ne suis pas très doué en SQL, je me tourne vers vous pour ma requette.
Je souhaite verifier si une entrée existe dans au moins une de mes tables. Pour cela il faut donc que je les verifie toutes.
Quelqu'un connaitrait il la syntaxe (même approchante) de ce genre de requette?
Merci à vous
Etant donné que je ne suis pas très doué en SQL, je me tourne vers vous pour ma requette.
Je souhaite verifier si une entrée existe dans au moins une de mes tables. Pour cela il faut donc que je les verifie toutes.
Quelqu'un connaitrait il la syntaxe (même approchante) de ce genre de requette?
Merci à vous
-

nickargall - WRInaute accro

- Messages: 6469
- Inscription: 13 Juin 2005
- Code: Tout sélectionner
SELECT `id` FROM `table1` WHERE (( `id` IN (SELECT `id` FROM `table2`) OR ( `id` IN (SELECT `id` FROM `table3`) OR ( `id` IN (SELECT `id` FROM `table4`)) AND `id`=$tavaleur
ptet qu'un truc comme ça ... (non garanti) et sans doute un peu lourd ...
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
hmm, ça me semble effectivement un peu tordu et un peu lourd. J'ai vu dans la doc SQL qu'il y avait une commande MATCH. J'essaye de comprendre comment elle marche mais j'avoue que pour l'instant je nage.
Mais y'a peut être un truc a creuser de ce coté là.
Mais y'a peut être un truc a creuser de ce coté là.
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
La recherche full text n'a rien avoir avec ce que tu veux faire. La requête de nickargall ne devrait pas être trop lourde puisqu'elle ne travaille quasiment que sur des indexes.
Tu peux même faire que des count(*) à la place, ça ira encore plus vite.
Exemple:
Tu peux même faire que des count(*) à la place, ça ira encore plus vite.
Exemple:
- Code: Tout sélectionner
select "found"
from (select count(*) as c1 from table1) as t1,(select count(*) as c2 from test2) as t2
WHERE c1 > 0 OR c2 > 0
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Peux tu m'expliquer ta requette YoyoS ?
Quand je dis que je suis une brele
Quand je dis que je suis une brele
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Ca s'appelle une requête orthogonale. Ca veut dire que au lieu de faire un select from table, tu fais un select from (une résultat d'une table). Dans ce cas, je le fais sur deux résultats de tables comme si j'avais fait select * from table1,table2
J'affiche simplement found quand il trouve au moins 1 résultat dans la table t1 ou t2 grâce aux alias et aux conditions c1 > 0 OR c2 > 0
Donc quand tu fais ta requête, tu tests simplement si
if (mysql_fetch_assoc(mysql_query($requete)))
pour savoir s'il existe un résultat ou pas dans au moins une table.
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Nickel, ça a l'air d'etre exactement ce dont j'ai besoin
Donc en gros si je veux verifier la presence d'une variable, j'aurai c1=$ma_variable OR c2=$ma_variable ?
Donc en gros si je veux verifier la presence d'une variable, j'aurai c1=$ma_variable OR c2=$ma_variable ?
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Eu non, moi j'ai compris ta question comme, existe-t-il une donnée (n'importe laquelle, j'ai compris un tuple) dans au moins une de mes tables ^^
Ça serait pour rechercher quoi ?
Surement un truc du genre:
Ça serait pour rechercher quoi ?
Surement un truc du genre:
- Code: Tout sélectionner
select "found"
from (select count(*) as c1 from table1 where monchamp = $mavar) as t1,(select count(*) as c2 from test2 monchamp = $mavar) as t2
WHERE c1 > 0 OR c2 > 0
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Ok, du coup ça me semble plus clair
En fait je cherche à verifier l'existance de ma variable dans mes tables qui me génerent mes pages.
Pour l'instant si je passe dans l'url une variable non presente dans ma base, ça me genère tout de même une page, mais avec un grosse erreur php au milieu. Cette verif me permettrai de faire une petite 301 si la page demandé n'est pas "valide"
En fait je cherche à verifier l'existance de ma variable dans mes tables qui me génerent mes pages.
Pour l'instant si je passe dans l'url une variable non presente dans ma base, ça me genère tout de même une page, mais avec un grosse erreur php au milieu. Cette verif me permettrai de faire une petite 301 si la page demandé n'est pas "valide"
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Non justement ce ne sont pas des "id", mais mes bases ne sont pas lourdes (quelques centaines d'entrées au grand max). Je teste dans phpmyadmin pour voir le temps d'exe
EDIT
apres test :
Affichage des enregistrements 0 - 0 (1 total, traitement: 0.0037 sec.)
ça va, c'est pas trop long
EDIT
apres test :
Affichage des enregistrements 0 - 0 (1 total, traitement: 0.0037 sec.)
ça va, c'est pas trop long
-

Djoule_logo - WRInaute impliqué

- Messages: 718
- Inscription: 30 Mai 2007
Je viens de mettre le script en place, ça fonctionne a merveille.
Par contre une question annexe. Si la page demandée n'existe pas, il vaut mieux une 301 vers la home, ou une 302 vers une page explicative ?
Par contre une question annexe. Si la page demandée n'existe pas, il vaut mieux une 301 vers la home, ou une 302 vers une page explicative ?
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
Djoule_logo a écrit:Si la page demandée n'existe pas, il vaut mieux une 301 vers la home, ou une 302 vers une page explicative ?
Je mettrais plutôt une 404 personnalisée (après tout, ça sert justement à ça), avec éventuellement une redirection "html" au bout de 30 secondes vers la home.
16 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Vérifier URL entrée dans un input à la volée (Ajax inside ?)
- verifier présence d'un BL
- Vérifier la présence du code Google Analytics
- [XMLHttpRequest] Vérifier la présence d'une page
- 21 000 pages a verifier presence google
- [Php] Vérifier la présence d'un slash en fin d'url
- Vérifier la présence d'une adresse email dans un formulaire
- Quel outil pour vérifier la présence de mots clés sur les pages ?
- gestion tables sql
- Requete SQL sur 2 tables
Consultez la description détaillée des produits ou services de Google suivants : Google Images, Google Feed Fetcher
- Suggestion de mots-clés
Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
