Ik heb 2 tabellen met in de ene tabel allemaal facturen en in de 2e tabel crediteuren. Nu heb ik een zoek funtie die naar: opmerking, crediteurnummer en factuurnummer kan zoeken. Al deze velden bevinden zich in 1 tabel.
Nu wil ik met de zelfde zoek query ook gaan zoeken in de crediteuren tabel naar crediteurnaam.
Dit zijn de indexen op de tabellen:
ALTER TABLE `inkoopregister_facturen` DROP INDEX `zoekfunctie` ,
ADD FULLTEXT `zoekfunctie` (
`opmerking` ,
`factnummer_leverancier` ,
`crediteurnummer`
)
ALTER TABLE `eva_crediteuren` DROP INDEX `zoekfunctie` ,
ADD FULLTEXT `zoekfunctie` (
`naam1lijn` ,
`naam2lijn`
)
En dit is de query:
SELECT i.id, i.crediteurnummer, i.factnummer_leverancier, i.factuur_datum, i.betaald_datum, i.bedrag, i.boeknummer, eg.Naam, ec.naam1lijn
FROM inkoopregister_facturen AS i
LEFT JOIN eva_gebruikersinfo AS eg ON eg.Nummer = i.verantwoord_id
LEFT JOIN inkoopregister_status AS irs ON irs.status_id = i.status_id
LEFT JOIN eva_crediteuren AS ec ON ec.crediteur_nr = i.crediteurnummer
WHERE MATCH (
i.factnummer_leverancier, i.crediteurnummer, i.opmerking
)
AGAINST (
'test'
)
Ik had al van iemand een tip gekregen om de rest te koppelen via OR zoals hier onder te zien is:
SELECT i.id, i.crediteurnummer, i.factnummer_leverancier, i.factuur_datum, i.betaald_datum, i.bedrag, i.boeknummer, eg.Naam, ec.naam1lijn
FROM inkoopregister_facturen AS i
LEFT JOIN eva_gebruikersinfo AS eg ON eg.Nummer = i.verantwoord_id
LEFT JOIN inkoopregister_status AS irs ON irs.status_id = i.status_id
LEFT JOIN eva_crediteuren AS ec ON ec.crediteur_nr = i.crediteurnummer
WHERE MATCH (
i.factnummer_leverancier, i.crediteurnummer, i.opmerking
)
AGAINST (
'test'
)
OR WHERE MATCH (
ec.naam1lijn, ec.naam2lijn
)
AGAINST (
'test'
)
Maar dat werkt niet.
iemand anders een idee hoe ik een MATCH() AGAINST() kan doen met 2 verschillende tabellen?
1.724 views