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はTABLE_AVATARレコードあたり多くの行を保持することができ、レコードごとに1行(私はすべてのデータを必要とする)を含有するであろう(私は最新のもの(IDのDESC)を必要とする)、及びTABLE_DOCUMENTSすべて(Iにおける多くのレコードごとの行ならびになしを保持することができすべての行レコードごとに存在する場合)を取得する必要があります。私はEMPLOYEE_IDでテーブルを結合することができます知っているが、私は株式はTABLE_AVATARとTABLE_DOCUMENTSからすべてのレコードから1つのレコードのみを取得しています。

助言がありますか?

おかげで、カルロス

Hirumina :

ここで私は1つの列にdocument_idsを取得するために、GROUP_CONCATグループ機能を使用していました。

    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を使用してテーブル名を置き換えます。私はこれがあなたの問題を解決するのに役立ちますね。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=387266&siteId=1