Zoeken in meedere tabellen. Hoe dan?
Waar ik naar op zoek ben.
Ik zoek me zo'n beetje het apalazarus naar 'n search engine die een ingevulde waarde kan zoeken in meerdere tabellen van een database.
Hier kan ik maar geen voorbeeld van vinden hoe zoiets nu in elkaar steekt. Ik krijg plenty responses hoe ik kan zoeken in één tabel maar ik zoek een engine die in vijf tabellen kijkt.
Iemand enige notite waar ik moet gaan kijken. Ook hier vind ik hier niet zo veel over. Mooiste zou zijn dat ik aan kan geven in welke tabel er gezocht moet worden maar waneer ik die waarde niet mee geef er dan in vijf tabellen gekeken gaat worden.
Specief verzoek.. i know. Maar is het onmogelijk? Wie kan me daar bij op weg helpen of heeft enig idee?
https://www.w3schools.com/sql/sql_union.asp
dat word dan 5 tabellen met 4 keer union er tussen. Het aantal veldnamen moet wel gelijk zijn
Jan
Kijk bijv.eens naar Elastic Search of Sphinx.
Jan R op 10/02/2020 09:42:18:
Kan je iets doen met union?
https://www.w3schools.com/sql/sql_union.asp
dat word dan 5 tabellen met 4 keer union er tussen. Het aantal veldnamen moet wel gelijk zijn
Jan
https://www.w3schools.com/sql/sql_union.asp
dat word dan 5 tabellen met 4 keer union er tussen. Het aantal veldnamen moet wel gelijk zijn
Jan
Niet alleen het aantal veldnamen maar ook de namen dienen gelijk te zijn. Dat is mijn geval niet zo en kan ik ook niet aanpassen.
Gewijzigd op 10/02/2020 10:22:58 door - Ariën -
Geen idee of het werkbaar is ... maar er zijn tutors bij.. Ga ik eens mee aan de slag.. Kiek'n wa wordt ;-)
Gewijzigd op 10/02/2020 11:04:22 door - Ariën -
Gewijzigd op 10/02/2020 11:03:14 door - Ariën -
Stel bijvoorbeeld dat je een aantal tabellen hebt:
- nieuws
- artikelen
- ...
Deze hebben alle waarschijnlijk een tekstveld. Als je nou al deze teksten in één (aparte) teksten-tabel zet, dan staat al die informatie ten minste bij elkaar. Dan ben je er natuurlijk nog niet. Je kunt niet rechtstreeks in de teksten-tabel "zoeken" omdat je niet op voorhand precies weet waar deze informatie bijhoort.
Aan de andere kant, meestal ben je in een gericht gebied (nieuws, forum, reacties, whatever) en meestal ook met gerichte argumenten (vaste waarden, en niet simpelweg "full text") aan het zoeken.
Ik denk ook dat de moeite die je moet doen in zekere zin verankerd is in de manier waarop je database is opgebouwd.
Een database (en bijbehorende tabellen) zou geconstrueerd moeten worden met de filosofie dat alles wat je er inkiepert er ook op een gegeven moment uitgepeuterd kan worden, bij voorkeur op een makkelijker manier :). Indien de database niet op een zodanige manier ontworpen is, dan wordt dit mogelijk nog een hele kluif.
Quote:
Mooiste zou zijn dat ik aan kan geven in welke tabel er gezocht moet worden maar waneer ik die waarde niet mee geef er dan in vijf tabellen gekeken gaat worden.
Dit kan prima. Je kunt immers een query - een SQL-statement - dynamisch opbouwen. Wat je aanvinkt in je formulier qua zoekgebied worden dan de tabellen/zoekgebieden in je database. En als je dus bijvoorbeeld voorgenoemde teksten had opgenomen in een enkele tabel, dan zou je dit zelfs tot een soort van conditie (WHERE content_type = 'news' of wat dan ook, maar dan met een id uiteraard) kunnen beperken, in plaats van dat je allemaal tabellen aan elkaar moet jassen.
Zie je hoe het ontwerp van je database een directe invloed heeft op de complexiteit van dit soort queries?
De manier waarop je database is opgezet kan je hierbij dus enorm helpen, en zou ook in dienst moeten staan van de mogelijke informatievragen die hierop afgevuurd kunnen worden.
Gewijzigd op 10/02/2020 15:58:07 door Thomas van den Heuvel
Je zou in sommige gevallen de velden kunnen aliassen met een AS functie:
Maar ik kan mij indenken dat een searchindex ook zeker gewenst kan zijn. Vooral als je op meerdere voorwaarden wilt zoeken.
"Dirk:
Niet alleen het aantal veldnamen maar ook de namen dienen gelijk te zijn. Dat is mijn geval niet zo en kan ik ook niet aanpassen.
Toch niet. De namen van de 1° query worden wel gebruikt maar moeten niet overeenkomen met de volgende querys