webForumDet fria alternativet

Hur matchar jag tabellerna?

Databaser & SQLur Databashanterare & SQL

4 svar · 309 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Jag har två tabeller... en "finns" och en "sökes" med en massa fält i.

tabell "finns"
id sträng1 sträng2 strängX...

tabell "sökes"
id sträng1 sträng2 strängY...

Tabellerna ser nästan lika ut, men inte riktigt, och de innehåller en himla massa fält. Jag vill nu matcha "sökes" med "finns" och få fram de rader i "finns" som stämmer med en rad i "sökes". Tacksam för lite hjälp... :)

Medlem sedan juni 20008 205 inlägg
#2

SELECT finns.*, sökes.* FROM finns LEFT JOIN sökes ON finns.sträng1 = finns.sträng2 etc borde funka.

Medlem sedan sep. 2005673 inlägg
#3

Vet inte om jag fattar riktigt. Alltså, jag vill ta en rad i tabellen "sökes" och få fram alla rader i tabellen "finns" som matchar. Tabellerna är inte identiska och de innehåller typ 30 olika fält och jag vill bara matcha mot de fält som innehåller ett värd. Så här försöker jag göra:

  1. Försöker välja en rad (vilken som helst) i tabellen "sökes".

  2. Sen jämför jag alla fält som innehåller något i den raden med varje rad i tabellen "finns".

  3. Slutligen plocka fram en lista med de rader som matchade (vill bara ha fälten från tabellen "finns" med i resultatet).

Medlem sedan juni 20008 205 inlägg
#4

OK, testa med SELECT sökes.* FROM finns WHERE finns.id = <någonting> LEFT JOIN sökes ON finns.sträng1 = sökes.sträng1 AND finns.sträng2 = sökes.sträng2 och så vidare. Inser att det var ett ganska uppenbart fel i mitt förra inlägg... :)

Medlem sedan sep. 2005673 inlägg
#5

Toppen, det var precis det jag var ute efter. Tack! :)

125 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)