Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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-在另一个查询中使用一个查询的结果_Mysql_Sql_Database - Fatal编程技术网

MySQL-在另一个查询中使用一个查询的结果

MySQL-在另一个查询中使用一个查询的结果,mysql,sql,database,Mysql,Sql,Database,我有一个查询,它返回两个列的行,每个列包含一个id SELECT idEng, idDutch FROM phraseConnections WHERE cat = '3' id来自其他表,在这些表中它们连接到我想要获取的短语 我试过这样的东西 SELECT a.phrase, b.phrase FROM phraseEnglish as a, phraseDutch as b WHERE a.id = (SELECT idEng FROM phraseConnections WHERE ca

我有一个查询,它返回两个列的行,每个列包含一个id

SELECT idEng, idDutch
FROM phraseConnections
WHERE cat = '3'
id来自其他表,在这些表中它们连接到我想要获取的短语

我试过这样的东西

SELECT a.phrase, b.phrase
FROM phraseEnglish as a, phraseDutch as b
WHERE a.id = (SELECT idEng
FROM phraseConnections
WHERE cat = '3')
and b.id = (SELECT idDutch
FROM phraseConnections
WHERE cat = '3')

谢谢。

该错误一定是因为内部查询返回了多个值

尝试在以下位置使用:


您的问题可能是因为您不能要求一个值等于一组多个值。 要在SQL中更正此问题,请在中使用

但是,此查询可以在没有子查询的情况下完成:

SELECT e.phrase, d.phrase
FROM phraseConnections c
   join  phraseEnglish e 
     on e.id = c.idEng
   join  phraseDutch d 
     on d.id = c.idDutch
Where e.Cat = '3'
更好地使用连接:

SELECT
   a.phrase,
   b.phrase
FROM
   phraseConnections pc
INNER JOIN
   phraseEnglish AS a
ON
   pc.idEng = a.id
INNER JOIN
   phraseDutch AS b
ON
   pc.idDutch = b.id
WHERE
   pc.cat = 3;

如果您想要在一种或两种语言中都没有对应行的记录,则可以使用外部联接。

显示的错误是什么?如果使用结果进行比较,请使用SELECT DISTINCT。但是,一般来说,我更喜欢联接。@user3091574如果它没有显示错误,但没有返回正确的结果,则需要在phraseConnections表中给出连接id的短语。
SELECT e.phrase, d.phrase
FROM phraseConnections c
   join  phraseEnglish e 
     on e.id = c.idEng
   join  phraseDutch d 
     on d.id = c.idDutch
Where e.Cat = '3'
SELECT
   a.phrase,
   b.phrase
FROM
   phraseConnections pc
INNER JOIN
   phraseEnglish AS a
ON
   pc.idEng = a.id
INNER JOIN
   phraseDutch AS b
ON
   pc.idDutch = b.id
WHERE
   pc.cat = 3;