使用公共id表从各个表中获取名称

时间:2013-10-14 00:22:14

标签: sql postgresql

我有3张桌子:

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

表男孩和女孩有一个学校所有男孩和女孩的名字和个人详细信息。

现在第三张表是那所学校的夫妻名单,其中男孩和女孩的名字来自男孩和女孩。

我想在输出中得到名字的夫妻名单,而不是ids。

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

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

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

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)