MySQL的。检索从多个表中数据与公共列

卡洛斯·查尔斯:

我在我的数据库下面的表格。

TABLE_EMPLOYEES
_________________________________________________
| id |   name  |  last name  |       email       |
-------------------------------------------------
|  1 | Henry   | Smith       | [email protected]   |
|  2 | Scarlet | Rogers      | [email protected] |
|  3 | John    | Adams       | [email protected]    |
=================================================

TABLE_AVATAR

_________________________________
| id | employee_id | avatar_name |
---------------------------------
| 99 | 1           | henry84     |
|100 | 1           | henry84_    |
|101 | 1           | henry84-    |
|442 | 2           | scarlet99   |
|924 | 3           | john-007    |
|926 | 3           | john-008    |
=================================

TABLE_DOCUMENTS

___________________________________
| id | employee_id | document_name |
-----------------------------------
|124 | 2           | cv.doc        |
|125 | 2           | resume.pdf    |
|126 | 2           | scan-01.jpg   |
|127 | 2           | dl.jpg        |
|396 | 3           | cv-john.doc   |
|397 | 3           | scan-2403.jpg |
===================================

我的目标是从每个员工的所有表中检索的所有数据。TABLE_EMPLOYEES将包含每个记录1行(我需要的所有数据),TABLE_AVATAR可容纳每个记录许多行(我只需要最新的一个(ID DESC)),并且TABLE_DOCUMENTS可以在所有的(我认为每个记录行数以及无需要获得所有行每条记录如有)。我知道我可以通过EMPLOYEE_ID连接表,但我的股票正从TABLE_AVATAR只有一条记录,并从TABLE_DOCUMENTS的所有记录。

有什么建议?

谢谢,卡洛斯

Hirumina:

在这里,我已经使用GROUP_CONCAT组函数来获取document_ids一列。

    select employee.*,GROUP_CONCAT(documents.document_name)  document_name,(SELECT MAX(id) as avatar_id from zz2  where zz2.employee_id = employee.id ) from zz1 employee LEFT JOIN zz3 documents on documents.employee_id = employee.id  group by

员工ID

这会给你是下面提到的结果。

  id   name   last name   mail                documents            avatar_id
  1   henry    smith     [email protected]          NULL               101
  2   scarlet  rogers    [email protected]   3.jpg,4.jpg,1.jpg,2.jpg   442           
  3   jon      adam      [email protected]     5.jpg,6.jpg             926    

只是ZZ1,zz2所示,zz3所示取代你的表名。我想这会帮助你解决你的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从数据库的多个表中获取公共列?

如何从MySQL和PHP中的多个表中检索数据?

mysql查询从具有公共字段的两个表中检索数据

使用 MySQL 列出属于一个类别表的多个表中的公共数据

从phpmyadmin中的多个表中检索数据

从mysql中的多个表中检索值

SQLAlchemy Join从多个表中检索数据

Laravel Eloquent从多个表中检索数据

SQL Server从多个表中检索数据

根据ID从多个表中检索数据

使用php从mysql数据库的多个表中检索多个值的效率如何

如何使用php从具有多个表的mysql数据库中检索大量数据

从多个具有相同字段的表中检索数据在mysql中

使用左外部联接和on子句从具有公共列的两个不同表中检索数据

mysql从3个表中检索数据

MySql从多个表中检索数据,然后在另一个表中插入有限的值

从另一个表的特定列中的多个值中检索一个表的 SQLite 数据

数据库:如何从具有一个公共列的两个表中获取多个值

MySQL如何在几个表中查找公共数据

从表中检索数据

数据表两列中的公共条目

PL / SQL游标-从多个表中检索数据

使用Spring和Hibernate从多个表联接中检索数据

从在Laravel多个表中检索数据的最佳方式

Rails:无需关联即可从多个表中检索数据

在C#中从多个表上的查询检索数据

如何使用PHP表单从多个表中检索数据?

如何从laravel雄辩地从多个表中检索数据

如何使用实体框架从多个表中检索数据