nehme ich das folgende Schema:Wählen Sie zuerst N Artikel pro Beziehung, haben eine Zeile pro Artikel
Künstler:
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment | |
| name | varchar(255) | YES | UNI | NULL | |
+------------+------------------+------+-----+---------+----------------+
Ereignisse:
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| date | timestamp | YES | | NULL | |
| artist_id | int(11) | YES | | NULL | |
| venue_id | int(11) | YES | | NULL | |
+------------+------------------+------+-----+---------+----------------+
Vermögen:
+---------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | a
| event_id | int(11) | YES | | NULL |
| source_asset_title | varchar(255) | YES | | NULL | |
| source_created_time | timestamp | YES | | NULL | |
Und ich wollte eine Ergebnismenge von 4 Vermögenswerte für jedes Ereignis für einen bestimmten artist.id, nach Veranstaltungsdatum sortiert, wie:
+----------+----------+------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+
| event_id | asset_id | source_asset_title | event_date | date |
+----------+----------+------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+
| 1 | 2089 | aba | 2015-12-03 07:00:00 | 2015-12-03 07:00:00 |
| 1 | 2101 | abb | 2015-12-03 07:00:00 | 2011-04-07 15:30:00 |
| 1 | 2102 | abc | 2015-12-03 07:00:00 | 2011-05-22 16:00:00 |
| 1 | 2107 | abd | 2015-12-03 07:00:00 | 2011-06-11 15:00:00 |
| 2 | 2109 | abe | 2011-07-18 15:00:00 | 2011-07-18 15:00:00 |
| 2 | 2113 | abf | 2011-07-18 15:00:00 | 2011-07-24 15:30:00 |
| 2 | 2115 | abg | 2011-07-18 15:00:00 | 2011-08-25 16:00:00 |
| 2 | 2123 | abh | 2011-07-18 15:00:00 | 2011-08-28 16:00:00 |
| 3 | 2126 | abi | 2011-09-01 16:00:00 | 2011-09-01 16:00:00 |
| 3 | 2129 | abj | 2011-09-01 16:00:00 | 2011-09-10 16:00:00 |
| 3 | 2135 | abk | 2011-09-01 16:00:00 | 2011-10-14 16:00:00 |
| 3 | 2147 | abl | 2011-09-01 16:00:00 | 2011-10-22 16:00:00 |
Wie konnte ich diese pro Ereignis ohne eine Unterabfrage erreichen?
Ich glaube, dass das Schema und die Ergebnismenge hier unterscheidet sich genug von anderen Fragen auf StackExchange, dass eine neue Frage angemessen ist. Hier
Können Sie einen Dump oder Sqlfiddle bereitstellen, also haben wir einige Daten, mit denen wir spielen können? – Philipp
Sie könnten GROUP_CONCAT und http://stackoverflow.com/a/23608554/308851 – chx
@chx verwenden Danke! Ich glaube, dass GROUP_CONCAT alle Werte der Asset-Tabelle in einer einzigen Ergebniszeile als Zeichenfolge platziert, die nicht mit der Ausgabe übereinstimmt, die ich bekommen möchte. (Das Endziel ist, json zurückzugeben, der die Anlagen beschreibt). –