Ik wil graag in een database woordvolgorde van een zin opslaan,
nu heb ik het volgende bedacht
ID | Woord | Positie
ID is de ID die aan een zin wordt gegeven, Woord het woord en Positie de positie in de zin dus bv
003 | dit | 0
003 | is | 1
003 | een | 2
003 | voorbeeld | 3
nu wil ik graag dmv SQL bepalen door welk woord bijvoorbeeld 'een' werd gevolgd in de zin met ID 3. Hoe doe ik dat? Of is dit een verkeerde opzet van mijn tabel?
Hoe bedoel je dat exact?
Het gaat dus om meerdere ID's aangezien het woord in meerdere zinnen kan voorkomen. Ik wil dus alle opvolgingen en niet alleen van zin met ID x
Hmm, je de vraag ook op een andere manier lezen: het gaat om de woorden die op een specifiek woord volgen uit alle zinnen. Dus niet alle woorden uit 1 zin maar telkens het opvolgende woord uit alle zinnen.
Ik heb er zo snel geen oplossing voor en ik betwijfel of dat je binnen 1 query gaat lukken...
Hmm, je de vraag ook op een andere manier lezen: het gaat om de woorden die op een specifiek woord volgen uit alle zinnen. Dus niet alle woorden uit 1 zin maar telkens het opvolgende woord uit alle zinnen.
Ik heb er zo snel geen oplossing voor en ik betwijfel of dat je binnen 1 query gaat lukken...
Wat zou de oplossing zijn om het wel binnen 1 query te kunnen doen? Hoe zou ik dan de data moeten opslaan?
Ik weet niet of dit op MySQL werkt maar op MSSQL werkt het:
SELECT tmptbl.woord
FROM woorden left join woorden as tmptbl on tmptbl.positie=(woorden.positie+1) AND tmptbl.id=woorden.id
WHERE woorden.woord = 'een'
Misschien dat ik iemand kan helpen om dit in MySQL uit te werken...