webForumDet fria alternativet

LIKE i INNER JOIN

4 svar · 222 visningar · startad av paraxe

paraxeMedlem sedan apr. 2004298 inlägg
#1

Hej.

SQL är ju väldigt kraftfullt!

Kan man tex göra något liknande?

SELECT t1.f1, t1.f2, t2,f1
FROM t1
INNER JOIN t2 ON t2.f1 LIKE '%t1.f1%'
WHERE t1.f2 LIKE '%test%'

För att spara lite tid så gör jag ingen labb på detta själv, kanske någon vet om det är värt att testa eller inte?

Mvh

Pär

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Syntaktiskt skulle det se ut så här

SELECT t1.f1, t1.f2, t2,f1
FROM t1
INNER JOIN t2 ON t2.f1 LIKE '%' || t1.f1 || '%'
WHERE t1.f2 LIKE '%test%'

men hela upplägget luktar. (Suspekt datamodell dvs.)

paraxeMedlem sedan apr. 2004298 inlägg
#3

Det inte bara luktar, den stinker...

Därför att;

Jag har en uppsättning "paragrafer" dvs. text-stycken.
Jag har en uppsättning "definitioner", ord med förklaring till vad det betyder.

1. Jag söker på definitionernas förklaring och får träff. T ex "gods".

2. I paragraf-tabellen skall jag kolla om definitions ordet finns i en paragraf.

SELECT pk_DefinitionId, fldWord, fldDefinition, tblparagraph.pk_ParagraphId
FROM tblDefinition
INNER JOIN tblparagraph ON tblparagraph.fldParagraphContent LIKE '%' || fldWord || '%'
WHERE fldDefinition LIKE '%gods%' ORDER BY fldWord

Och det blir en massa träffar i denna SQL-sats... kolla in denna länk. http://member.webforum.nu/7229/sql-problem_fs.htm

Mvh

Pär

paraxeMedlem sedan apr. 2004298 inlägg
#4

LarsG skrev:

(Suspekt datamodell dvs.)

Du får gärna förklara vad du menar LarsG

Jag har nu suttit och vridigt och vänt på mitt resonemang men kan inte hitta hur jag skulle gjort annorlunda.

Jag vill alltså ha ut ett resultat med pk_paragraphId där definitions-ordet finns i en paragraf men jag söker på definitionens förklaring.

Mvh

Pär

LarsGMedlem sedan dec. 200012 465 inlägg
#5

Suspekt datamodell var fel ord, det jag avsåg var att det aldrig kan bli någon fart på den typen av fråga eftersom man aldrig kan utnyttja något index. Det du behöver är nog något stöd för fritextsökning och hur det fungerar beror på vilken DBMS det gäller.

361 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
0 ms — hämta statistik (cache)
118 ms — slå upp tråd (db)
0 ms — hämta forumlista (cache)
121 ms — hämta inlägg (db)
119 ms — hämta bilagor (db)