:MySQL katılmak üç tablo Ben benziyor üç MySQL tabloları kullanıyorum sorun
üyeleri için masa arkadaş listesi için
| id | name | status |
-------------------------------------------
| 1 | mike | 0 |
| 2 | peter | 1 |
| 3 | john | 1 |
| 4 | any | 1 |
tablo hesapları:
| myid | user | date |
------------------------------------------
| 10 | 2 | 2010-01-04 |
| 3 | 10 | 2010-09-05 |
| 4 | 10 | 2010-10-23 |
Kullanıcılar galerileri için tablo:
| fotoid | userid | pic1 |
------------------------------------------
| 101 | 2 | 1.jpg |
| 102 | 3 | 2.jpg |
| 103 | 4 | 3.jpg |
Bu üç tabloya katılmak ve arkadaş listesine eklediğim kullanıcıları ve aynı zamanda listeye eklediğim kullanıcıları listeleyecek sorgu sonuçlarını almak istiyorum, tüm bu kullanıcıların '1' statüsüne sahip olması gerekir. Üyeler tablosu ve fotoğraflarını galeri tablosundan görüntüler.
Bu örnekte kimliğim 10'dur. Galeriler alanı tablosunda 'MyID', diğer kullanıcılarını arkadaşlarına ekleyen kullanıcıları gösterirken, 'kullanıcı' eklenen kullanıcıların kimliğidir.
bu örnekte sonuç gibi görünmelidir:
| id | name | status | pic1 |
------------------------------------------------
| 2 | peter | 1 | 1.jpg |
| 3 | john | 1 | 2.jpg |
| 4 | any | 1 | 3.jpg |
Bunu nasıl yapabilirim?
MySQL EXPLAIN:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | extra
-------------------------------------------------------------------------------------------------------------------------------------------------
1 | primary | g | ALL | id | NULL | NULL | NULL | 7925 | Using where
1 | primary | a | eg_ref | id | id | 4 | g.id | 1 | Using where
2 |DEPENDENT SUBQUERY| a2 | index | id | NULL | NULL | NULL | 90734 | Using index; Using temporary; Using filesort;
2 |DEPENDENT SUBQUERY| f | index | rds_index |rds_index| 8 | NULL | 138945 | Using where;Using index;Using join buffer
Bir katılımı yapamıyorsanız neden öğrenmiyorsunuz http://dev.mysql.com/doc/refman/5.1/en/join.html – cristian