Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
Php MySQL。从多个共有列的表中检索数据_Php_Mysql_Database - Fatal编程技术网

Php MySQL。从多个共有列的表中检索数据

Php MySQL。从多个共有列的表中检索数据,php,mysql,database,Php,Mysql,Database,我的数据库中有以下表格 TABLE_EMPLOYEES _________________________________________________ | id | name | last name | email | ------------------------------------------------- | 1 | Henry | Smith | henry@gmail.com | | 2 | Scarlet | Rog

我的数据库中有以下表格

TABLE_EMPLOYEES
_________________________________________________
| id |   name  |  last name  |       email       |
-------------------------------------------------
|  1 | Henry   | Smith       | henry@gmail.com   |
|  2 | Scarlet | Rogers      | scarlet@gmail.com |
|  3 | John    | Adams       | john@gmail.com    |
=================================================
TABLE_头像

_________________________________
| 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    |
=================================
表2.1.1文件

___________________________________
| 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_文档可以保存每条记录的多行,也可以根本不保存任何行(如果有,我需要获取每条记录的所有行)。我知道我可以按员工id加入表格,但我只从表格头像中获取一条记录,而从表格文档中获取所有记录

有什么建议吗

谢谢,
Carlos

在这里,我使用了GROUP\u CONCAT GROUP函数将文档ID设置为一列

    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 employee.id
这将为您提供下面提到的结果

  id   name   last name   mail                documents            avatar_id
  1   henry    smith     henry@gmail.com          NULL               101
  2   scarlet  rogers    test2@gmail.com   3.jpg,4.jpg,1.jpg,2.jpg   442           
  3   jon      adam      test3@gmail.com     5.jpg,6.jpg             926    
只需将表名替换为zz1、zz2、zz3即可。
我想这将帮助您解决问题。

在这里,我使用了GROUP\u CONCAT GROUP函数将文档ID设置为一列

    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 employee.id
这将为您提供下面提到的结果

  id   name   last name   mail                documents            avatar_id
  1   henry    smith     henry@gmail.com          NULL               101
  2   scarlet  rogers    test2@gmail.com   3.jpg,4.jpg,1.jpg,2.jpg   442           
  3   jon      adam      test3@gmail.com     5.jpg,6.jpg             926    
只需将表名替换为zz1、zz2、zz3即可。
我想这将帮助您解决问题。

您到目前为止尝试了什么?从php_employees employee,php_employees_profile_avatar,php_employees_documents documents中选择employee.*,avatar.*,documents.*选择employee.*,avatar.*,documents.*显示示例数据的预期结果。3,John,亚当斯,john@gmail.com,john-008,cv-john.doc,scan-2403.jpg到目前为止您尝试了什么?从php_employees employees employees,php_employees\u profile\u avatar,php_employees\u documents中选择employee.*,avatar.*,documents.*,其中employeer.id=avatar.employeer\u id和employeer.id=documents.employeer\u ids显示所,约翰,亚当斯,john@gmail.com,john-008,cv-john.doc,scan-2403.jpg谢谢!越来越近了。然而,若查询并没有找到化身或文档,那个么它根本不会显示主记录。就像您发布的示例一样,它没有显示Henry。您预期的结果是什么?id name邮件文档avatar_id 1 Henry smithtest1@gmail.com零,零2个猩红罗杰斯test2@gmail.com1.jpg,2.jpg,3.jpg,4.jpg 442 3乔恩·亚当test3@gmail.com5.jpg,6.jpg 926ohhh好的。我以为你只想要有文档的ID。非常感谢!越来越近了。然而,若查询并没有找到化身或文档,那个么它根本不会显示主记录。就像您发布的示例一样,它没有显示Henry。您预期的结果是什么?id name邮件文档avatar_id 1 Henry smithtest1@gmail.com零,零2个猩红罗杰斯test2@gmail.com1.jpg,2.jpg,3.jpg,4.jpg 442 3乔恩·亚当test3@gmail.com5.jpg,6.jpg 926ohhh好的。我以为你只想要有文档的ID