2010-12-14 73 views
0

J'ai trois tables (dans une base de données MS Access 2000 fichier * .mdb)Aide avec Delphi 7, ADO, MS Access et SQL Déclaration

connaissances
id
question
réponse

Knowledge_Keywords
id
knowledgeid
keywordsid

Mots-clés
id
mot-clé

Besoin d'obtenir tous les mots-clés pour une connaissance

Choisir un mot clé distinct de mots-clés KW
Rejoignez knowledge_keywords KKW sur KKW.keywordid = KW.id
Joignez-vous à savoir K sur K .id = KKW.knowledgeid
Où k.id = 10

bien sûr 10 est un exemple, j'utilise en fait un paramètre il

Où k.id =: AKnowId ';

et le remplir dans le code

qry.Parameters.ParamByName ('AKnowId') Valeur:. = AKnowledgeId;

de toute façon, je pense que le SQL est qrong, toute aide serait grandement appréciée

+0

Test dans Delphi, il se bloque dans mon essai sauf quand il atteint l'ouverture de la requête. En le testant dans MS Access, j'obtiens une erreur dans la clause From. Ajout de parenthèses et retesting dans MS ACCESS, je reçois une erreur de syntaxe dans l'opération de jointure. – IElite

Répondre

1

Résolu!

Sélectionnez mot-clé distinct
de (mots-clés KW
INNER JOIN knowledge_keywords KKW sur KKW.keywordid = KW.id)
INNER JOIN Connaissance K sur K.id = KKW.knowledgeid
Où k.id = 10

+0

Je suppose que MS ACCESS en particulier à propos de l'utilisation de parenthèses et je suppose que j'avais besoin de jointures internes vers les plaines ol jointures IElite

1

Obtenez le SQL fonctionne correctement en lui-même accès (faire une requête, essayez de votre SQL, voir si elle retourne quoi que ce soit). Alors s'inquiéter de Delphi.

+0

Oui, merci, comme je l'ai dit dans mon commentaire ci-dessus, j'ai essayé de le faire fonctionner dans MS ACCESS, mais j'ai échoué aussi. – IElite

+1

Vous avez échoué dans Access? Étiez-vous en train d'utiliser le QBE pour écrire le SQL? Si non, pourquoi pas? Il garantit un SQL compatible avec Access, c'est donc un excellent moyen de le faire fonctionner. Et cela économise une cargaison de frappe. –