0

我有 3 张桌子:

1. Boy (id, Name, Address)     
2. Girl (id, Name, Address)    
3. Couples (Boy_id, Girl_id)   

男孩和女孩表包含学校中所有男孩和女孩的姓名和个人详细信息。

现在第三个表是那所学校的情侣列表,其中包含 Boy 和 Girl 表中的男孩和女孩的 id。

我想在输出中获取带有姓名而不是 id 的情侣列表。

Output (Boy.Name, Girl.Name)

我尝试使用以下查询,但它给了我一个非常大的输出:

SELECT  
  Boy.Name, Girl.Name 
FROM   
  Boy, Girl, Couples 
WHERE   
  Boy.id = Couples.Boy_id AND Girl.id = Couples.Girl_id

任何人都可以指出这个查询中的错误并提供正确的吗?

4

2 回答 2

1
SELECT b.name, g.name FROM Couples c 
INNER JOIN Boy b ON c.Boy_id=b.id 
INNER JOIN Girl g ON c.Girl_id=g.id;
于 2013-10-14T01:17:16.263 回答
0

在这种情况下,您必须使用JOINs 来获取数据。

SELECT b.name, g.name
FROM Couples c
LEFT JOIN Boy b ON (b.id = c.Boy_id)
LEFT JOIN Girl g ON (g.id = c.Girl_id)
于 2013-10-14T00:24:40.437 回答