php - 左连接mysql多表id并以JSON形式显示名称

标签 php mysql json angularjs

我是 angularjs 的新人和json 。我想显示属性 name来自id来自与包含 id 的其他表(表 B)相关的一个表(表 A)来自表A。

这是表 A:

---------------------
id_skill | name_skill
---------------------
1        | medical record
2        | rontgen
3        | thorax
---------------------

和表 B:

----------------------------------------
id_client | name_client | skill_client
----------------------------------------
1         | john        | 1,2
2         | smith       | 3
----------------------------------------

我想要回显/显示表 B 中的数据,但在 skill_client 中列包含id(s)来自表 A。我想用 name_skill 显示该列来自 json 中的表 A方法和PHP

这样我就可以像这样在我的页面中获取数据:

------------------------
Name       |    Skills
------------------------
John       | medical record, rontgen
Smith      | thorax
------------------------

你能帮我吗?

最佳答案

您确实应该更改表结构并规范化数据库。最好的办法是创建一个新表来存储 id_client 和 id_skill 并从第二个表中删除逗号分隔的数据。但是,就您而言,您可以尝试以下操作

select 
b.name_client, 
group_concat(a.name_skill) as skills 
from tableb b 
left join tablea a on find_in_set(a.id_skill,b.skill_client) > 0 
group by b.id_client ; 

关于php - 左连接mysql多表id并以JSON形式显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765361/

相关文章:

Java 和 Tomcat org.json java.lang.ClassNotFoundException

java - 如何从自定义 Gson JsonSerializer 调用另一个序列化程序?

php - 安全和PHP

php - 在 Laravel 5.4.36 中使用模型搜索数据

mysql - 每个 MySQL 的最大行数(十亿)NDBCLUSTER?

尽管有索引,mysql select 查询还是很慢

json - 如何在 Cloud Functions for Firebase 中使 HTTP 请求异步/等待?

php - PHP创建的排序表,不能使用查询排序

PHP MYSQL CREATE TABLE 问题

java - 使用 JDBC 从数据库中提取并创建数组