Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan Wordnet untuk mengembalikan contoh kalimat

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Workbench - Cara menyinkronkan Diagram EER

  2. Permintaan Wordnet untuk mengembalikan contoh kalimat

  3. Kondisi WHERE di MySQL dengan 16 Contoh Query Berbeda

  4. PHP float/ganda disimpan sebagai MySQL DECIMAL

  5. Bidang perhitungan matematika CakePHP?