Ordinamento di record in una relazione 1: n (uno-a-molti)
-
12-09-2019 - |
Domanda
Ho 2 tabelle:
+-----------+ +------------------------------------+--------------+
+ 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 |
+-----------+ +---------------------------------------------------+
che ha sono in questo rapporto:
persona hasMany Foto <-> Foto belongsTo persona
Mi piacerebbe elencare tutte le persone con le loro foto (anche se qualcuno non ne ha uno, come Jack) e l'ordine per titolo le foto.
Che query SQL (MySQL) dovrei scrivere per questo? Posso usare si unisce in una relazione uno-a-molti?
PS: Proprio come un'informazione, mi piacerebbe essere in grado di costruire una tale varietà con i record:
$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()
)
)
Molte grazie!
Soluzione
Select *
From persons
left outer join photos on person.id=photos.person_id
order by photos.title
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow