2011-01-01 4 views
1

... Oui, ouais, je sais que les jointures traditionnelles n'existent pas. En fait, j'aime la méthodologie de requête freebase en théorie, j'ai juste un peu de mal à la faire fonctionner:Freebase Requête avec "JOINS"

Quelqu'un a un exemple simple d'obtenir des données Freebase via MQL qui provient de deux "tables" différentes? En particulier, j'essaie d'obtenir des données automobiles ... par exemple, en tirant des champs de/automotive/model_year et/automotive/trim_level.

J'ai lu la documentation (pendant des heures). Il y a une possibilité distincte que je regarde juste un tel exemple quelque part et que je ne le vois pas parce que mon cerveau OLTP ne comprend pas ce qu'il voit.

* Note * ... que les deux «types» avec lesquels je travaille ci-dessus sont frères et sœurs, pas parent/enfant. Freebase permet même de joindre des données entre des nœuds frères ... Je vois des exemples de requêtes tirées de parents/enfants, mais pas de frères et soeurs je ne pense pas (ou je les ai oubliés).

+0

Que voulez-vous faire avec les données? Je pense que je ne comprends pas le cas d'utilisation, pour le moment. BTW: Il n'y a pas/automotive/trim_year. – hangy

+0

mon mauvais ... trim_level ... juste dans la requête, mauvais dans le poste de question. Je ne suis pas sûr que le cas d'utilisation est pertinent ... mais je travaille mon chemin vers une année/marque/modèle/etc ensemble de listes déroulantes pour spécifier un véhicule. – codemonkey

Répondre

1

Fondamentalement, ne pourriez-vous pas simplement restreindre les requêtes en fonction de l'entrée de l'utilisateur?

Lorsque l'utilisateur sélectionne l'année, vous obtenez toutes les marques qui ont une année de modèle correspondant:

[{ 
    "model_s": [{ 
    "model_years": [{ 
     "year": [{ 
     "type": "/type/datetime", 
     "value<": "2010", // User input 
     "value>=": "2009" // User input 
     }], 
     "type": "/automotive/model_year" 
    }], 
    "type": "/automotive/model" 
    }], 
    "id": null, 
    "name": null, 
    "type": "/automotive/make" 
}]​ 

Si la marque est sélectionnée et vous avez besoin des modèles pour cette marque et l'année:

[{ 
    "model_years": [{ 
    "year": [{ 
     "type": "/type/datetime", 
     "value<": "2010", // User input from above 
     "value>=": "2009" // User input from above 
    }], 
    "type": "/automotive/model_year" 
    }], 
    "id": null, 
    "name": null, 
    "type": "/automotive/model", 
    "make": [{ 
    "id": "/en/volkswagen", // User input 
    "type": "/automotive/make" 
    }] 
}]​ 

Ou est-ce que je n'ai pas compris votre problème correctement?

+0

+1 très utile ... examinera de plus près demain soir et probablement attribuer comme réponse sélectionnée. Je vous remercie! – codemonkey

+0

oui, je pense que c'est tout. En fait, je pense que cela pourrait être mieux que ce que j'avais l'intention de faire. Merci encore. – codemonkey

+1

Bien sûr, je suis heureux d'avoir pu aider. – hangy