Abfrage verbessern

Hallo, an alle Profis der Joinabfragen.

ich benötige Hilfestellung bei dem Aufbau einer Suchabfrage, momentan benutze ich eine rigth join Abfrage, diese sucht mir alle Firmendaten aus meiner Haupttabelle, welche das Suchkriterium erfüllen. Derzeit ist das Suchkriterium allerdings eingeschränkt, nähmlich auf genau den vorhanden Begriff in einer Kategorie-Tabelle (Fulltext). Die Kategorien haben, genau wie die Firmentabelle eine ID mit Int-Typ sowie belegtem Index (Primär). Eine dritte Tabelle bildet dann die Verbindung (Foreign-Key). Nun möchte ich die Suche erweitern, undzwar soll die Möglichkeit bestehen auch Firmennamen im selben Suchfenster einzugeben, sowie in einem zweiten Suchfenster Orte oder PLZ gleich mitzufiltern.

Explain SELECT *
FROM company AS comp
RIGHT JOIN company_industry AS comp_ind ON comp.id = comp_ind.company_id
RIGHT JOIN industry AS ind ON comp_ind.industry_id = ind.id
WHERE
MATCH (ind.d_kat) AGAINST (’$Abbeizarbeiten’)

Kann jemand helfen die Abfrage auszubauen oder anders zu gestalten?

CREATE TABLE company (
ID int(10) NOT NULL,
COSTUMER_ID varchar(10) NOT NULL,
PASSWORD text NOT NULL,
SALUTATION text NOT NULL,
TITLE text NOT NULL,
FIRSTNAME varchar(80) NOT NULL,
COMPANYNAME varchar(255) NOT NULL,
STREET varchar(255) NOT NULL,
ZIPCODE varchar(10) NOT NULL,
LOCATION varchar(50) NOT NULL,
PHONEPREFIX varchar(20) NOT NULL,
PHONENUMBER varchar(20) NOT NULL,
FAXPREFIX varchar(20) NOT NULL,
FAXNUMBER varchar(20) NOT NULL,
MOBILEPREFIX varchar(20) NOT NULL,
MOBILNUMBER varchar(20) NOT NULL,
EMAIL text NOT NULL,
HOMEPAGE text NOT NULL,
STATE text NOT NULL,
COUNTRY text NOT NULL,

PRIMARY KEY (ID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE company_industry (
COMPANY_ID int(10) NOT NULL default ‘0’,
INDUSTRY_ID int(10) NOT NULL default ‘0’,
PRIMARY KEY (COMPANY_ID,INDUSTRY_ID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE industry (
id int(10) NOT NULL default ‘0’,
d_kat varchar(50) NOT NULL default ‘’,

PRIMARY KEY (id),
FULLTEXT KEY FULLTEXT_INDEX (d_kat)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

mfg
R. Geiseler

Dieses Forum dreht sich um PostgreSQL, nicht um MySQL…

Bitte die Frage in einem MySQL Forum stellen - oder auf Postgres updaten, und dann nochmal versuchen :wink:

Wir geben auch gern Hilfe bei der Umstellung :wink: