我想从链接tatoeba.org中的塔图巴档案馆转储文件在本地主机中创建一个离线语句字典数据库。您可以从代码中注意到,sentences.csv包含语言ids,如eng、fra、cmn、tur和该语言中的句子;links.csv将句子ids映射为翻译的并行句子。
我想用一种语言搜索一个单词,比如eng,列出搜索单词的句子和翻译的句子对。例如,我在英语(英语)中搜索“美”,并用法语(fra)列出它们的平行句子。
`sentences.csv` has three columns: `id` `language` `text`
`links.csv` has two columns: `sentenceId` `translatedId`我可以分三步做一个平行句子。
1) SELECT id FROM sentences WHERE text LIKE('%she is a rare beauty_%') AND language='eng'
+-------+
| id |
+-------+
| 21687 |
+-------+2) SELECT translatedId FROM links WHERE sentenceId='21687'
+--------------+
| translatedId |
+--------------+
| 184559 |
| 517365 |
| 550067 |
| 2238371 |
| 2238372 |
+--------------+3) SELECT text FROM sentences WHERE (id ='550067' AND language='fra') OR id ='21687'
+------------------------------------------+
| text |
+------------------------------------------+
| It is true she is a rare beauty. |
| C'est vrai, elle est d'une rare beauté. |
+------------------------------------------+如何将三个查询合并为一个线性查询以获得第三步的结果?
发布于 2013-10-12 10:22:17
不完全是我想要的,但这能达到目的
SELECT `sentences`.* FROM
`sentences` JOIN
`links` ON `id` = `translatedId`
WHERE `sentenceId` = (SELECT id FROM sentences WHERE text LIKE('%she is a rare beauty_%') AND language='eng' LIMIT 1);结果是
+---------+----------+-------------------------------------------------+
| id | language | text |
+---------+----------+-------------------------------------------------+
| 184559 | jpn | 確かに彼女は絶世の美人です。 |
| 517365 | deu | Es ist wahr, sie ist eine seltene Schönheit. |
| 550067 | fra | C'est vrai, elle est d'une rare beauté. |
| 2238371 | ber | S tidet, drusit tsednan ay icebḥen am nettat. |
| 2238372 | ber | Ccbaḥa-nnes drus tin ay tt-yesɛan. |
+---------+----------+-------------------------------------------------+https://stackoverflow.com/questions/19265527
复制相似问题