Paul Vercellotti wrote:
> SELECT * FROM indexes JOIN texts ON texts.docid == indexes.recID WHERE 
> texts.text1 MATCH "text1-7" OR indexes.metadata1 > 40;

Please note that in SQL, the equality comparison operator is =, not ==,
and that strings use 'single quotes', not "double quotes".

> "Error: unable to use function MATCH in the requested context"

MATCH can be used only with FTS table.  In this query, you are trying
to apply it to the result of the JOIN.

Do the FTS query first (in a subquery), then join the result.

In this particular case, the OR complicates things; you probably want
something like this:

  SELECT * FROM texts WHERE text1 MATCH 'text1-7'
  UNION
  SELECT * FROM texts WHERE docid IN (SELECT recID FROM indexes WHERE metadata1 
> 40)


Regards,
Clemens
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to