从表A中选择所有记录并连接表B以获得A的属性

时间:2012-12-30 19:18:08

标签: mysql

我无法弄明白我应该怎么做......

表'孩子':

idchild | name | idability
--------------------------
   1    | Joe  |    1
   1    | Joe  |    2
   2    | Peter|    1
   2    | Peter|    3
   3    | Kate |    4

表'能力':

idability | ability
-------------------
     1    |   run
     2    |   read
     3    |   write
     4    |   swim

例如,Joe可以'跑'和'读'但不能'写'或'游'。 我需要一个关于乔的能力的列表:

ability |  
-----------------
  run   |   +
  read  |   +
  write |   - 
  swim  |   -

我以不同的方式尝试了几个SQL查询(使用“NOT EXIST”),但从未得到正确的结果。我希望有人能告诉我应该怎么做。

提前谢谢!

2 个答案:

答案 0 :(得分:3)

这应该没问题:

select ability.ability, if(child.idability,'+','-') from ability left join child on ability.idability =child.idability and child.name="joe";

答案 1 :(得分:0)

试试这个:

select `child`.`idChild`,`child`.`name`, `child`.`idability`, `ability`.`idAbility`,`ability`.`ability` from `child` inner join `ability` on `child`.`idAbility` = `ability`.`idability` order by `child`.`name`, `ability`.`ability`

您可以删除不需要的列。