Toon posts:

[MySQL] Search query meerdere tabellen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een zoek functie schrijven op regio en bedrijfsnaam.

Tabellen:
Bedrijf (id, naam, regioID,...)
Regio (id, naam)

Als ik de tabellen met elkaar join kan ik geen MATCH() .. AGAINST() meer gebruiken want die gaat maar over 1 tabel. Is het toch op te lossen dat ik de volgende situatie wel goed kan krijgen.

code:
1
2
3
4
5
6
7
8
9
10
11
SELECT
    bedrijf.naam AS bedrijf,
    regio.naam AS regio
FROM
    bedrijf
LEFT OUTER JOIN
    regio
ON
    bedrijf.regioID = regio.regioID
WHERE
    MATCH (bedrijf.naam, regio.naam) AGAINST ('Utrecht'),



Bovenstaande code werkt niet door de 2 tabellen. Is het op te lossen? Eventueel een subquery waarin de bedrijf.naam en regio.naam aan elkaar gekoppeld worden?

  • Sosabowski
  • Registratie: Juni 2003
  • Laatst online: 18-04 11:49

Sosabowski

nerd

code:
1
2
3
4
5
6
SELECT
 bedrijf.naam AS bedrijf, regio.naam AS regio
FROM
  Regio, bedrijf
WHERE
  bedrijf.regioID=regio.id AND MATCH (bedrijf.naam, regio.naam) AGAINST ('Utrecht')


edit:

mysql, mssql, .....?

[ Voor 33% gewijzigd door Sosabowski op 26-08-2004 14:17 ]

The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts. -- Bertrand Russell


Verwijderd

Topicstarter
Uh... Wat bedoel je precies. Die query is t probleem niet. Alleen wil ik dat die zoekfunctie werkt?

Dus zoeken in 2 kolommen van 2 aparte tabellen met 1 query? Ik weet ook dat er iets met LIKE te doen is, maar das niet de ideale oplossing.

Iemand nog tips? Wil ook zoeken op gedeelten binnen een string/text. Niet op complete woorden.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En kan je niet 2x match against aan elkaar OR-en ?

ala MATCH(bedrijf ...) ... OR MATCH(regio...) ...

Verwijderd

Topicstarter
Hey Thanx ACM, die werkt wel. Wat is t toch simpel... :D


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
    bedrijf.naam AS bedrijf,
    regio.naam AS regio
FROM
    bedrijf
LEFT OUTER JOIN
    regio
ON
    bedrijf.regioID = regio.regioID
WHERE
    MATCH (bedrijf.naam) AGAINST ('Utrecht'),
OR
    MATCH (regio.naam) AGAINST ('Utrecht'),