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![]()
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![]()
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Wir geben auch gern Hilfe bei der Umstellung ;-)
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen