Я работаю над базой данных словаря с 4 таблицами, разработанными как
words
wordid | lemma
senses
wordid | synsetid
synsets
synsetid | definition
samples
synsetid | sample
Поэтому я использую запрос ниже, чтобы получить все смысловые определения и образцы
if(isset($searchterm)){
echo "<b>".$searchterm."</b><hr>";
// QUERY TO FIND SENSES
$senses_query="SELECT
words.lemma,words.wordid,
senses.wordid,senses.synsetid,
synsets.synsetid, synsets.definition,
samples.synsetid, samples.sample
FROM
words
LEFT JOIN
senses ON words.wordid=senses.wordid
LEFT JOIN
synsets ON senses.synsetid=synsets.synsetid
LEFT JOIN
samples ON senses.synsetid=samples.synsetid
WHERE
words.lemma REGEXP '^$searchterm$'";
$senses_query_result = mysql_query($senses_query) OR die("sense alamadım.<br>".mysql_error());
$num=mysql_num_rows($senses_query_result);
while($sensesFound = mysql_fetch_array($senses_query_result )){
echo " " . $sensesFound['lemma'] . "";
echo " " . $sensesFound['definition'] . "";
echo " " . $sensesFound['sample'] . "";
echo "<br>";
}
}
Проблема в том, что если существует более одного образца определения, оно повторяется следующим образом.
definition 1 sample 1
definition 1 sample 2
definition 2 sample 1
definition 2 sample 2
definition 2 sample 3
e.t.c
Мне нравятся такие строки, как
definition 1 sample 1 sample 2
definition 2 sample 1 sample 2 sample 2
Я пытался использовать group_concat для select, но он объединяет все выборки всех определений в один.
Возможно ли это с помощью запроса MySQL или я должен использовать php для выполнения такого рода работы.
Заранее спасибо