Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从表A中选择所有记录并联接表B以获取A的属性_Mysql - Fatal编程技术网

Mysql 从表A中选择所有记录并联接表B以获取A的属性

Mysql 从表A中选择所有记录并联接表B以获取A的属性,mysql,Mysql,我不知道该怎么做 表'child': idchild | name | idability -------------------------- 1 | Joe | 1 1 | Joe | 2 2 | Peter| 1 2 | Peter| 3 3 | Kate | 4 表“能力”: idability | ability ------------------- 1 | run

我不知道该怎么做

表'child':

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
例如,乔可以“跑”和“读”,但不能“写”或“游泳”。 我需要一份关于乔能力的清单:

ability |  
-----------------
  run   |   +
  read  |   +
  write |   - 
  swim  |   -
我使用“notexist”以不同的方式尝试了几个SQL查询,但从未得到正确的结果。我希望有人能告诉我该怎么做

提前谢谢你

试试这个:

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`
您可以删除不需要的列。

这应该可以:

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

这只列出了孩子拥有的能力,而不是所有的能力。我需要列出每个孩子的能力和标记。