Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 右键进行SQL查询';s_Mysql_Sql_Sqlite - Fatal编程技术网

Mysql 右键进行SQL查询';s

Mysql 右键进行SQL查询';s,mysql,sql,sqlite,Mysql,Sql,Sqlite,我尝试进行SQL查询,但做不好。 我有一个DB和两个表。第一个表包含ID和单词,第二个表包含ID和同义词。我需要对数据库进行三次查询,以获取输入的一个单词的同义词,但最后一次查询中的问题(正如我所考虑的)。我甚至有关于如何正确创建这些问题的说明,但我被卡住了: 要开始获取单词id查询 SELECT id FROM words WHERE word = 'Profit' 。之后,我们会得到一个同义词列表 SELECT w_id, s_id FROM synonyms WHERE w_id =

我尝试进行SQL查询,但做不好。 我有一个DB和两个表。第一个表包含ID和单词,第二个表包含ID和同义词。我需要对数据库进行三次查询,以获取输入的一个单词的同义词,但最后一次查询中的问题(正如我所考虑的)。我甚至有关于如何正确创建这些问题的说明,但我被卡住了:

要开始获取单词id查询

SELECT id FROM words WHERE word = 'Profit'
。之后,我们会得到一个同义词列表

SELECT w_id, s_id FROM synonyms  WHERE w_id = '1234 'or s_id = '1234'. 
对重复值排序​​选择同义词

 SELECT word FROM words WHERE id IN (1,2,3,4,5 ...)
我认为1,2,3,4,5必须是上一个查询,而不是1,2,3,4,5,但是如果我使用它,则输出不会给我任何东西,或者没有给我需要的东西(ID而不是同义词)

表字数据: (1,'word1'),(2,'word2'),(3,'word3'),(4,'word4'),(5,'word5'),(6,'word6'),(7,'word7'),(8,'word8'),(9,'word9'),(10,'word10'))

从表同义词: (1,2)、(1,3)、(1,4)、(1,5)、(1,6)、(1,7)、(1,8)、(1,9)、(1,10)

例如:如果我写单词“word1”,那么最后一个查询必须从第二个表中找到与其相关的所有同义词,并在屏幕上显示结果,但给出的却是相同的单词

SELECT sw.word 
FROM words w
INNER JOIN
    synonyms s ON
        s.w_id = w.id
INNER JOIN
    words sw ON
        sw.id = s.s_id
WHERE w.word = 'Profit'

您还可以用变量替换“利润”,并将其作为一个函数。

您必须处理两个方向<代码>w_id→ <代码>序列号,和<代码>序列号→ <代码>w_id。 有几种可能的实现方式;其中之一是:

SELECT word
FROM words
WHERE id IN (SELECT s_id
             FROM synonyms
             WHERE w_id = (SELECT id
                           FROM words
                           WHERE word = 'Profit'))
   OR id IN (SELECT w_id
             FROM synonyms
             WHERE s_id = (SELECT id
                           FROM words
                           WHERE word = 'Profit'))

请提供测试数据和您试图实现的输出。我添加了测试数据并解释了编辑的改进,但您的问题仍然不是很清楚。当我说提供测试数据时,我的意思是你需要给出表结构,等等。例如,表同义词的(1,2)是什么?这些列是什么?它们是什么意思?您可能希望使用SQLFIDLE并只向我们提供链接。这里有一个例子:介意把这个问题作为回答吗?=)非常感谢。