SELECT boek FROM tabel WHERE woorden='jezus' AND woorden='wijn'
Link gekopieerd
dat werkt uiteraard niet aangezien er geen rij voor boek is die jezus en wijn bevat. ze bevatten in dit geval alleen jezus of wijn.
Link gekopieerd
ah op die manier
SELECT DISTINCT(boek) AS eenboek FROM tabel WHERE woorden='jezus' OR woorden='wijn'
Link gekopieerd
nee :) nu krijg ik ook boeken due alleen jezus of wijn bevatten, ik wil alle boeken die beide bevatten :)
Het kan ook niet met een JOIN ozd? Of misschien is mijn dbase structuur niet nodig en heb ik nog een extra tabel nodig ?
Link gekopieerd
@ Femke,
Misschien beter om je datamodel te verbeteren.
Voorbeeldje:
-- Boeken --
id
boek
-- Woorden --
id
boek_id
woord
Zo heb je elk boek maar 1 x in je database en kan je alle keywoorden per boek kwijt in de tabel woorden.
Query:
(Edit: zag in andere topic dat je nieuwe MySQL versie hebt dan kan je deze Query wel gebruiken)
SELECT
boek
FROM
boeken
WHERE
id =
(SELECT
boek_id
FROM
woorden
WHERE
woord ='jezus'
AND
woord ='wijn'
)
Link gekopieerd
maar hier heb je toch ook hetzelfde probleem? er zijn geen rijen in woorden die jezus en wij bevatten; er moet dus iets gejoined worden ?
Link gekopieerd
<?php
SELECT
boek
FROM
boeken
WHERE
woord ='jezus'
OR
woord ='wijn'
OR
woord ='jezus'
AND
woord ='wijn'
?>
Link gekopieerd
@Wout en de rest: Het is vaak slim om bij het gebruik van OR's en AND's haakjes te zetten om de prioriteit aan te geven.
(..... OR .....) AND .......
...... OR (...... AND .......)
Link gekopieerd
ik ben inmiddels alweer een stukje verder, ik gooi het over een andere boeg bedankt voor jullie reacties!
ik zit nu alleen nog met 1probleempje
ik krijg nu
jezus vandale 1 0.038
jezus bijbel 1 0.027
wijn bijbel 1 0.027
dmv
SELECT * FROM `boeken` WHERE woord='jezus' OR woord='wijn'
nu wil ik eigenlijk alleen dat hij de scores van een boek optelt:
dus voor vandale: 0.038
bijbel 0.027 + 0.027
nu dacht ik dit te doen met
SELECT SUM(scores) FROM boeken GROUP BY boek HAVING woord = 'jezus' OR woord = 'wijn'
alleen dit werkt niet; hoe moet het wel?
Link gekopieerd