فرز السجلات في علاقة 1:n (واحد إلى متعدد).
-
12-09-2019 - |
سؤال
لقد حصلت على جدولين:
+-----------+ +------------------------------------+--------------+
+ 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
لا تنتمي إلى StackOverflow