Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn Wordnet để trả về các câu ví dụ

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 1432 - Không thể tạo bảng liên kết. Chuỗi kết nối nguồn dữ liệu% s không ở định dạng chính xác

  2. Các tính năng ẩn của MySQL

  3. Cách chèn giá trị tiếng Do Thái vào db mysql trong php

  4. Làm cách nào để cập nhật hàng loạt trong mySQL bằng node.js

  5. Làm cách nào để cấp quyền truy cập từ xa vào MySQL cho toàn bộ mạng con?