2010-04-21 4 views
2

У меня есть база данных, которая действует как тройной магазин, за исключением того, что это просто простая база данных MySQL.Создание запроса на тройной магазин с использованием SQL - как найти все тройки, которые имеют общий предикат и объект

Я хочу выбрать все троек, которые имеют общий предикат и объект. Info about RDF and triples

Я не могу найти SQL.

Если бы я был только один предикат и объект, чтобы соответствовать я хотел бы сделать:

select TRIPLE from TRIPLES where PREDICATE="predicateName" and OBJECT="objectName" 

Но если у меня есть список (HashMap) многих пар (predicateName, Objectname) Я не уверен, что я нужно сделать.

Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию, я не уверен, что я сделал это совершенно ясно, но я опасаюсь предоставлять слишком много информации и путать проблему.

+0

Из интереса почему вы пишете собственный SQL-код на основе тройного хранилища, если там уже много SQL и не-SQL? – RobV

+0

Потому что это уже сделано :( – Ankur

ответ

1

Возможно, загрузите ваш хэш-карту во временную таблицу и сделайте JOIN в свой трехместный магазин.

0

выберите TRIPLE из троек, где PREDICATE в (?,?,?, ........) и OBJECT в (?,?,?,?, .....)

Populate «?» использует HashMap.keys и HashMap.values. В зависимости от языка и метода доступа к данным используйте либо связанные параметры (ODBC, и другие методы), либо расширьте параметры, которые создают сам sql.