سؤال

لقد حصلت على جدولين:

+-----------+  +------------------------------------+--------------+
+ persons   |  | photos                                            |
+-----------|  +---------------------------------------------------+
+ id | name +  | id | person_id | path              | title        |
+-----------+  +---------------------------------------------------+
+  1 | Tom  +  |  1 |         2 | ~fred/me.png      | Yo, it's Me! |
+  2 | Fred +  |  2 |         2 | ~fred/my_wife.png | I'm Susan    |
+  3 | Jack +  |  3 |         1 | ~tom/my_dog.jpg   | a woof       |
+-----------+  +---------------------------------------------------+

والتي لها في هذه العلاقة:

لدى الشخص العديد من الصور <-> الصورة تنتمي إلى الشخص

أرغب في إدراج جميع الأشخاص مع صورهم (حتى لو لم يكن لدى شخص ما صورة، مثل جاك) والترتيب حسب عنوان الصور.

ما هو استعلام SQL (MySQL) الذي يجب أن أكتبه لهذا؟هل يمكنني استخدام الصلات في علاقة رأس بأطراف؟

ملاحظة:كمعلومة فقط، أود أن أكون قادرًا على إنشاء مثل هذه المصفوفة باستخدام السجلات:

$persons = Array(
    [0] => Array(
        [id] => 1,
        [name] => 'Tom',
        [Photo] => Array(
            [0] => Array(
                [id] => 3,
                [person_id] => 1,
                [path] => '~tom/my_dog.jpg',
                [title] => 'a woof'             // 1st
            )
        )
    ),
    [1] => Array(
        [id] => 2,
        [name] => 'Fred',
        [Photo] => Array(
            [0] => Array(
                [id] => 2,
                [person_id] => 2,
                [path] => '~fred/my_wife.png',
                [title] => "I'm Susan"          // 2nd
            ),
            [0] => Array(
                [id] => 1,
                [person_id] => 2,
                [path] => '~fred/me.png',
                [title] => "Yo, it's Me!"       // 3rd
            )
        )
    ),
    [2] => Array(
        [id] => 3,
        [name] => 'Jack',
        [Photo] => Array()
    )
)

تشكرات!

هل كانت مفيدة؟

المحلول

Select *
From persons 
left outer join photos on person.id=photos.person_id
order by photos.title
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top