カルロス・チャールズ:
私は、データベース内の次のテーブルを持っています。
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を使用してテーブル名を置き換えます。私はこれがあなたの問題を解決するのに役立ちますね。