Odświeżam temat bo mam pewien problem z TSearch2. Otóż mam tabele:
product [
id, price...]
product_i18n [
product_id,
locale_id, name, description, tsearch2_vector]
Kolumna tsearch2_vector jest oczywiście typu tsvector. Chciałbym teraz wyszukać produkty, które pasują do zadanego wzorca czyli przeszukać tą właśnie kolumnę i dołączyć tabelę product do tabeli product_i18n. Mam więc takie zapytanie:
SELECT
*
FROM shp_product_i18n, to_tsquery('buty|adidas') AS q
LEFT JOIN shp_product ON shp_product.id=shp_product_i18n.product_id
WHERE shp_product_i18n.tsearch2_vector @@ q;
Pojawia się problem:
Cytat
Query failed: ERROR: invalid reference to FROM-clause entry for table "shp_product_i18n"
LINE 7: shp_product ON shp_product.id=shp_product_i18n.product_i...
^
HINT: There is an entry for table "shp_product_i18n", but it cannot be referenced from this part of the query.
Gdy zapytanie złożę bez tego JOINa to działa poprawnie. Co z tym fantem zrobić? Niestety google nie bardzo mi pomogło...
Proszę o pomoc,
pion
PS: "shp_" to prefix tabel.
// Edit:
Udało mi się przenosząc JOINa do klauzli WHERE ale czy da się to zrobić jednak z JOINem?
SELECT
*
FROM shp_product_i18n, to_tsquery('buty|adidas') AS q, shp_product
WHERE shp_product_i18n.tsearch2_vector @@ q AND shp_product.id=shp_product_i18n.product_id ;