CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
12.06.2014, 14:55:38
|
Anfänger
|
|
Registriert seit: Jun 2014
Alter: 31
Beiträge: 2
|
|
Select Statement
Hallo,
ich bin neu hier im Forum und habe schon gleich folgende Frage.
Und zwar habe zwei Tabellen ('post' und 'post_tag').
In 'post' speichere ich jeglich relevantes zum Post, wie den geschrieben Text..
Zu jedem Post kann man zugleich noch mehrere Tags hinzufügen, wie PhP MySQL...,
welche in 'post_tag' gespeichert werden.
Die beiden Tabellen hängen über die 'post_id' zusammen.
Nun zu meinem Problem.
Bisher habe ich zuerst über Select mir passend zu einem Muster alle Posts von 'post' geholt,
(also ich weiß von vornherein nicht die 'post_id', da sie in Abhängigkeit zur zeit geholt werden)
und danach nach Auswertung des Ergebnisses alle Tags über Select..in() geholt.
Meine konkrete Frage hierbei ist es, kann man innerhalb eines Statements die 'post' daten holen und zugleich alle relevanten 'post_tag' daten welche allerdings dann ein array darstellen würden.
tabelle 'post':
id | text
----------
5 | 'test'
----------
6 | 'blabla'
tabelle 'post_tag':
post_id | tag
---------------
5 | 'php'
---------------
5 | 'test'
---------------
6 | 'mysql'
und dass ich innerhalb einer Abfrage dann Ergebnisse bekomme welche alle Tags von 'post_tag' mit den Daten von 'post' "verbinden".
Hoffe es wurde einigermaßen ersichtlich was ich meine/suche.
Mit freundlichen Grüßen und schonmal Dankeschön für eure Hilfe,
Pauls
|
12.06.2014, 15:55:02
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: Select Statement
Zitat:
Zitat von pauls
Meine konkrete Frage hierbei ist es, kann man innerhalb eines Statements die 'post' daten holen und zugleich alle relevanten 'post_tag' daten welche allerdings dann ein array darstellen würden.
|
Ja.
Code:
privat=*# create table post (id int, t text);
CREATE TABLE
Time: 19,935 ms
privat=*# create table post_tag (post_id int, tag text);
CREATE TABLE
Time: 2,127 ms
privat=*# copy post from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 5 test
>> 6 blabla
>> \.
Time: 7700,448 ms
privat=*# copy post_tag from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 5 php
>> 5 test
>> 6 postgresql
>> \.
Time: 11436,743 ms
privat=*# select p.id, array_agg(t.tag) from post p left join post_tag t on p.id=t.post_id group by p.id;
id | array_agg
----+--------------
5 | {php,test}
6 | {postgresql}
(2 rows)
Time: 13,973 ms
privat=*# select p.id, array_to_string(array_agg(t.tag),', ') from post p left join post_tag t on p.id=t.post_id group byp.id;
id | array_to_string
----+-----------------
5 | php, test
6 | postgresql
(2 rows)
privat=*# select p.id, array_to_json(array_agg(t.tag)) from post p left join post_tag t on p.id=t.post_id group by p.id; id | array_to_json
----+----------------
5 | ["php","test"]
6 | ["postgresql"]
(2 rows)
privat=*# rollback;
ROLLBACK
|
12.06.2014, 16:10:58
|
Anfänger
|
|
Registriert seit: Jun 2014
Alter: 31
Beiträge: 2
|
|
AW: Select Statement
Wow das ging schnell !
Vielen Danke hat mir wirklich weiter geholfen :)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:00:34 Uhr.
|