Anda bisa mendapatkan kalimat dari samples
meja. Contoh:
SELECT sample FROM samples WHERE synsetid = 201062889;
hasil:
Jadi, Anda dapat memperluas kueri Anda sebagai berikut:
SELECT
a.lemma AS `word`,
c.definition,
c.pos AS `part of speech`,
d.sample AS `example sentence`,
(SELECT
GROUP_CONCAT(a1.lemma)
FROM
words a1
INNER JOIN
senses b1 ON a1.wordid = b1.wordid
WHERE
b1.synsetid = b.synsetid
AND a1.lemma <> a.lemma
GROUP BY b.synsetid) AS `synonyms`
FROM
words a
INNER JOIN
senses b ON a.wordid = b.wordid
INNER JOIN
synsets c ON b.synsetid = c.synsetid
INNER JOIN
samples d ON b.synsetid = d.synsetid
WHERE
a.lemma = 'carry'
ORDER BY a.lemma , c.definition , d.sample;
Catatan:Subpilih dengan GROUP_CONCAT
mengembalikan sinonim dari setiap pengertian sebagai daftar yang dipisahkan koma dalam satu baris untuk mengurangi jumlah baris. Anda dapat mempertimbangkan untuk mengembalikan ini dalam kueri terpisah (atau sebagai bagian dari kueri ini tetapi dengan yang lainnya diduplikasi) jika diinginkan.
PERBARUI Jika Anda benar-benar membutuhkan sinonim sebagai baris dalam hasil, berikut ini akan melakukannya tetapi saya tidak akan merekomendasikannya:Sinonim dan contoh kalimat keduanya berkaitan dengan definisi tertentu sehingga kumpulan sinonim akan diduplikasi untuk setiap contoh kalimat. Misalnya. jika ada 4 contoh kalimat dan 5 sinonim untuk definisi tertentu, hasilnya akan memiliki 4 x 5 =20 baris hanya untuk definisi tersebut.
SELECT
a.lemma AS `word`,
c.definition,
c.pos AS `part of speech`,
d.sample AS `example sentence`,
subq.lemma AS `synonym`
FROM
words a
INNER JOIN
senses b ON a.wordid = b.wordid
INNER JOIN
synsets c ON b.synsetid = c.synsetid
INNER JOIN
samples d ON b.synsetid = d.synsetid
LEFT JOIN
(SELECT
a1.lemma, b1.synsetid
FROM
senses b1
INNER JOIN words a1 ON a1.wordid = b1.wordid) subq ON subq.synsetid = b.synsetid
AND subq.lemma <> a.lemma
WHERE
a.lemma = 'carry'
ORDER BY a.lemma , c.definition , d.sample;