我正在设计一个类似于4个表格的字典数据库
words
wordid | lemma
senses
wordid | synsetid
synsets
synsetid | definition
samples
synsetid | sample所以我使用下面的查询来获取所有意义定义和样本
if(isset($searchterm)){
echo "".$searchterm."
";
// 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.
".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 "
";
}
}问题是:如果有一个以上的定义样本,它会像这样重复。
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我在select上尝试了group_concat,但它将所有定义的所有样本连接成单个样本。
是否有可能与MySQL查询或我应该使用PHP来处理这种工作。
提前致谢