Javascript 内部联接返回单行而不是多行
我的内部联接只返回第一行,但在我的表中有多行。我有三张桌子。我正在执行从主连接到次连接到第三个连接 Main(左连接)->secondary(内部连接)->third(返回一行而不是多行) 第一个表格Javascript 内部联接返回单行而不是多行,javascript,mysql,join,Javascript,Mysql,Join,我的内部联接只返回第一行,但在我的表中有多行。我有三张桌子。我正在执行从主连接到次连接到第三个连接 Main(左连接)->secondary(内部连接)->third(返回一行而不是多行) 第一个表格 id name 1 john 2 abel 3 julia id first_table(FK) 1 1 2 2 id second_table(FK) name 1 1 hello 2 1 haha 3 2
id name
1 john
2 abel
3 julia
id first_table(FK)
1 1
2 2
id second_table(FK) name
1 1 hello
2 1 haha
3 2 thanks
第二张表
id name
1 john
2 abel
3 julia
id first_table(FK)
1 1
2 2
id second_table(FK) name
1 1 hello
2 1 haha
3 2 thanks
第三张表
id name
1 john
2 abel
3 julia
id first_table(FK)
1 1
2 2
id second_table(FK) name
1 1 hello
2 1 haha
3 2 thanks
查询
SELECT * FROM first_table
LEFT JOIN second_table ON first_table.id = second_table.first_table
INNER JOIN third_table ON third_table.second_table = second_table.id
它返回第一个表和第二个表以及第三个表中的一行
我想要什么:
返回第一个表和第二个表,其中包含第三个表中的多行
SELECT * FROM first_table
LEFT JOIN
(second_table
INNER JOIN third_table ON third_table.second_table = second_table.id)
ON first_table.id = second_table.first_table;
或与原始查询类似的结果
SELECT * FROM first_table
INNER JOIN
(second_table
INNER JOIN third_table ON third_table.second_table = second_table.id)
ON first_table.id = second_table.first_table;
你能行
SELECT * FROM first_table
LEFT JOIN
(second_table
INNER JOIN third_table ON third_table.second_table = second_table.id)
ON first_table.id = second_table.first_table;
或与原始查询类似的结果
SELECT * FROM first_table
INNER JOIN
(second_table
INNER JOIN third_table ON third_table.second_table = second_table.id)
ON first_table.id = second_table.first_table;
你的问题可能是错的。当联接条件使用第二个\u表。第一个\u表列时,从第一个\u表提取并对第一个\u表应用左联接。这将在执行时引发异常。它应该是这样的,并将为您提供多个您想要的记录。我已经在我这边测试过了
SELECT * FROM first_table
LEFT JOIN second_table ON first_table.id = second_table.first_table
INNER JOIN third_table ON third_table.second_table = second_table.id
你的问题可能是错的。当联接条件使用第二个\u表。第一个\u表列时,从第一个\u表提取并对第一个\u表应用左联接。这将在执行时引发异常。它应该是这样的,并将为您提供多个您想要的记录。我已经在我这边测试过了
SELECT * FROM first_table
LEFT JOIN second_table ON first_table.id = second_table.first_table
INNER JOIN third_table ON third_table.second_table = second_table.id
右外连接
?是打字错误吗?左联接第一个表?它可能是第二个\u表吗?另外,您是否需要显示第一个\u表中的所有行,而不管该id是否存在于第二个\u表中?右外部联接
?这是打字错误吗?左联接第一个表?它可能是第二个\u表吗?另外,您是否需要显示第一个\u表中的所有行,而不管该id是否存在于第二个\u表中?很抱歉,我在查询时出错了,应该将其保留为连接到第二个\u表而不是第一个\u表。感谢澄清。很抱歉我在查询中出错,应该将其保留为连接到第二个表而不是第一个表。谢谢你的澄清。