MySQL-在另一个查询中使用一个查询的结果
我有一个查询,它返回两个列的行,每个列包含一个idMySQL-在另一个查询中使用一个查询的结果,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
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;