Page 1 sur 2

Requete sur 2 BD Interbase differentes

Posté : 04 avr. 2005, 13:55
par Tato
Bonjour, je voudrais savoir s'on peut faire et comment une requete qu'attaque 2 tables de 2 BD interbase differentes.

Merci
Tato

Posté : 04 avr. 2005, 14:11
par flitox

Posté : 04 avr. 2005, 14:35
par Hubert Roksor
flitox, je crois que tu n'as pas lu que Tato cherche à joindre des tables sur deux "BD" différentes.

Je n'y connais rien en InterBase, mais tu ferais mieux de fournir quelques précisions supplémentaires comme la version de ton serveur et si les deux bases de données sont situées sur le même serveur ou sur deux serveurs différents.

Posté : 04 avr. 2005, 14:40
par flitox
J'ai lu un peu trop vite :oops:

Posté : 26 juin 2007, 15:14
par Chile
Bonjour,
Je suis interessé de savoir si qlq à une réponse à ce sujet !
donc requete sur deux tables qui se trouvent sur deux bases diffferentes et sur un meme serveur.
merci

Posté : 26 juin 2007, 15:28
par orgerix
C'est tout bête :D

Code : Tout sélectionner

SELECT * FROM nomDB1.nomTable1 LEFT OUTER JOIN nomDB2.nomTable2 ON nomDB1.nomTable1.Champ1=nomDB2.nomTable2.Champ2
J'ai extrapolé à partir de la syntaxe des permissions et ca marche.

Posté : 26 juin 2007, 15:48
par Chile
ah ok !!
mais que devient la connection à la base ??
mysql_select_db($database_mabase, $mabase);

Posté : 26 juin 2007, 15:57
par orgerix
La requete fait le même résultat quelque soit la base de donnée selectionnée, voire même si aucune base n'est sélectionnée. Par contre, quand je fait la requete sur PHPMyAdmin, je suis renvoyé automatiquement sur la première base de donnée. Donc si tu fais ensuite d'autre requete, il vaut mieux reselectionner la BDD.

Posté : 26 juin 2007, 16:12
par Chile
ok, merci,
derniere question ! :wink:
comment cela ce code si j'ai une requete multicritere du genre
FROM produits WHERE produits.rubannu1 LIKE '%%%s%%'  OR produits.rubannu2  LIKE '%%%s%%' OR produits.rubdetail2  LIKE '%%%s%%'

Posté : 26 juin 2007, 16:15
par orgerix
Je te consseillerai de surnommer tes tables du style
Select FROM maBDD.matable C
pûis après, c'est comme une requete normal sauf que tu mais C comme nom de table

Posté : 26 juin 2007, 16:20
par Chile
...surnommer...tu veux dire renommer mes bases et tables ?

Posté : 26 juin 2007, 16:25
par orgerix
Non, juste que lors de la requete, elles auront un autre nom. C'est plus simple de travailler avec des surnoms quand les noms des tables sont un peu llong et qu'il y a beaucoup de condition.

Pour surnommer une table, tu mets le surnom après le nm de la table, après l'espace et tu utilise le surnom pour le reste de la requete. J'ai été clair ?

Posté : 26 juin 2007, 16:35
par Chile
oui, surement tu as été clair, mais j'ai pas trop compris !
C'est la que j'ai pas piger : 'tu mets le surnom après le nm de la table, après l'espace'


peux-tu me confirmer si pour une multi-requete (plusieurs mots cles sur plusieurs colonnes) je peux toujours utiliser LIKE et OR ?[/code]

Posté : 26 juin 2007, 17:33
par orgerix
OUi, du moment que tu indique bien les ccolonnes, c'est dire, nomDB.nomTable.nomColomne

Posté : 26 juin 2007, 20:53
par Chile
je viens de mettre tout ça en place, mais j'ai une page en blanche en affichage, sans message d'erreur.
Voici la requete (désolé sans avoir surnommé les bases)
$query_enr_produits = sprintf("SELECT * 
 FROM horizogaland.shop2_produits
 LEFT OUTER JOIN horizogallat.shop_produits
 ON horizogaland.shop2_produits.rubannu1=horizogallat.shop_produits.rubannu1
 LEFT OUTER JOIN horizogallat.shop_produits
 ON horizogaland.shop2_produits.rubannu2=horizogallat.shop_produits.rubannu2
 LEFT OUTER JOIN horizogallat.shop_produits
 ON horizogaland.shop2_produits.rubdetail2=horizogallat.shop_produits.rubdetail2
 WHERE shop2_produits.rubannu1
 LIKE '%%%s%%' OR shop2_produits.rubannu2
 LIKE '%%%s%%' OR shop2_produits.rubdetail2
 LIKE '%%%s%%' ", $motcle_enr_produits, $motcle_enr_produits, $motcle_enr_produits);
et le code qui fonctionne bien actuellement mais sur une base
$query_enr_produits = sprintf("SELECT *
 FROM shop2_produits
 WHERE shop2_produits.rubannu1
 LIKE '%%%s%%'  OR shop2_produits.rubannu2
  LIKE '%%%s%%' OR shop2_produits.rubdetail2
  LIKE '%%%s%%' ORDER BY shop2_produits.titre", $motcle_enr_produits, $motcle_enr_produits, $motcle_enr_produits);
[/code]
je me suis surement planté !! est-ce que tu vois ou ??