Bạn có thể lấy các câu từ samples
bàn. Ví dụ:
SELECT sample FROM samples WHERE synsetid = 201062889;
sản lượng:
Vì vậy, bạn có thể mở rộng truy vấn của mình như sau:
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;
Lưu ý:Lựa chọn con với GROUP_CONCAT
trả về các từ đồng nghĩa của mỗi nghĩa dưới dạng danh sách được phân tách bằng dấu phẩy trong một hàng để cắt giảm số hàng. Bạn có thể cân nhắc trả lại những thứ này trong một truy vấn riêng biệt (hoặc như một phần của truy vấn này nhưng với mọi thứ khác được sao chép) nếu muốn.
CẬP NHẬT Nếu bạn thực sự cần các từ đồng nghĩa dưới dạng các hàng trong kết quả, thì cách sau sẽ làm được nhưng tôi không khuyên bạn nên làm như vậy:Từ đồng nghĩa và câu ví dụ đều liên quan đến một định nghĩa cụ thể nên tập hợp các từ đồng nghĩa sẽ được trùng lặp cho mỗi câu ví dụ. Ví dụ. nếu có 4 câu ví dụ và 5 từ đồng nghĩa cho một định nghĩa cụ thể, kết quả sẽ có 4 x 5 =20 hàng chỉ cho định nghĩa đó.
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;