Information als Spalte an Datensatz anfügen
Stefan Werner
- datenbank
0 EKKi0 Vinzenz Mai0 Stefan Werner
Hallo zusammen,
ich überlege gerade, ob es innerhalb eines SQL-Statements möglich ist, über einen JOIN o.ä. Daten aus mehreren Abfragen in einem Datensatz zu kombinieren. Konkretes Beispiel:
Tabelle News
************
news_id | news_titel
1 | "SelfHTML wird bald 14"
2 | "Neues Update für SQL Server 2005"
Tabelle NewsImages
******************
ni_id | ni_news_id | ni_image | ni_sortorder
1 | 1 | "birthday1.jpg" | 10
2 | 1 | "birthday2.jpg" | 20
3 | 1 | "birthday3.jpg" | 30
Zielabfrage:
************
news_id | news_titel | news_firstpic
1 | "SelfHTML wird bald 14" | "birthday1.jpg"
2 | "Neues Update für SQL Server 2005" | NULL
Die Abfrageteile selbst wären ja recht einfach
SELECT news_id, news_titel, meinunterabfragefeld as news_firstpic FROM News
wobei meinunterabfragefeld = "SELECT TOP 1 ni_image FROM NewsImages WHERE ni_news_id=news_id ORDER BY ni_sortorder"
Vielleicht denke ich auch gerade zu kompliziert, aber kann mir vl jemand von euch einen Hinweis geben, ob es möglich ist, diese Abfragen zu einer zusammenzubekommen?
Vielen Dank
Stefan
Mahlzeit Stefan Werner,
ich überlege gerade, ob es innerhalb eines SQL-Statements möglich ist, über einen JOIN o.ä. Daten aus mehreren Abfragen in einem Datensatz zu kombinieren.
Prinzipiell sind JOINs genau dafür da. In Deinem speziellen Fall hilft Dir aber eine "korrelierte Unterabfrage" eher weiter ... informiere Dich zu dem Thema.
MfG,
EKKi
Hallo,
ich überlege gerade, ob es innerhalb eines SQL-Statements möglich ist, über einen JOIN
Du kennst das Stichwort,
o.ä. Daten aus mehreren Abfragen in einem Datensatz zu kombinieren. Konkretes Beispiel:
Tabelle News
************news_id | news_titel
1 | "SelfHTML wird bald 14"
2 | "Neues Update für SQL Server 2005"Tabelle NewsImages
******************ni_id | ni_news_id | ni_image | ni_sortorder
1 | 1 | "birthday1.jpg" | 10
2 | 1 | "birthday2.jpg" | 20
3 | 1 | "birthday3.jpg" | 30
news_id | news_titel | news_firstpic
1 | "SelfHTML wird bald 14" | "birthday1.jpg"
2 | "Neues Update für SQL Server 2005" | NULL
wo ist das Problem?
Vielleicht denke ich auch gerade zu kompliziert, aber kann mir vl jemand von euch einen Hinweis geben, ob es möglich ist, diese Abfragen zu einer zusammenzubekommen?
Selbstverständlich. Ich empfehle unsere Artikel in SELFHTML aktuell:
- Einführung in Joins
- Fortgeschrittene Jointechniken
Freundliche Grüße
Vinzenz
Nochmal ich,
über einen JOIN o.ä. Daten aus mehreren Abfragen in einem Datensatz zu
kombinieren. Konkretes Beispiel:
das mit dem Hinweis auf korrelierte Unterabfragen war eine interessante Sache, das hab ich noch nicht alles gewusst ... schon krass, was alles geht.
Für alle die auch mal an einem ähnlichen Problem hängen, hier meine Lösung die ich gefunden habe
SELECT a.news_id, a.news_header,
(SELECT TOP(1) ni_image FROM NewsImages WHERE a.news_id = ni_news_id ORDER BY ni_sortorder) FROM News AS a
Stefan