webForumDet fria alternativet

LIKE i INNER JOIN

Databaser & SQLur Databashanterare & SQL

4 svar · 224 visningar · startad av paraxe

Medlem sedan apr. 2004298 inlägg
Frågan#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

Medlem sedan dec. 200012 464 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.)

Medlem 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

Medlem 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

Medlem sedan dec. 200012 464 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.

135 ms totalt · 3 externa anrop · v20260731065814-full.232057fb
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)