| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| n.a. Registriert seit: Aug 2005 Ort: Berlin
Beiträge: 146
| Daten aus ainer assoziierten Tabelle holen
Hallo zusammen! Folgende Fragestellung: Es gibt drei Tabellen (eigentlich vier, aber die Tabelle 'users' spielt hier keine Rolle): adverts [id, title], adverts_tags [advert_id, tag_id] und tags [id, word]. Wie man am Namen der zweiten erkennt, ist es eine Assoziation, durch die eine n:m-Beziehung zwischen den anderen beiden realisiert ist. Nun möchte ich gerne auf einer Seite eine bestimmte Anzeige ausgeben lassen, und zwar mit den Stichworten, mit denen sie vertaggt ist. Soll etwa so aussehen: Code: Advert ID | Title | Tags 1 | bla | tag1, tag2, tag3 2 | foo | tag1, tag2, tag3 3 | bar | tag1, tag2, tag3 Code: SELECT
`adverts`.`id` AS `advertid`, `adverts`.`user_id`, `adverts`.`title`,
`adverts`.`timesent`, `adverts`.`description`, `adverts`.`numvisits`, `users`.*
FROM `adverts`
INNER JOIN `users` ON adverts.user_id = users.id
WHERE (adverts.status = 'active') AND (adverts.id = '90') |
| | |
| | #2 (permalink) |
| Inventar Registriert seit: Jul 2002
Beiträge: 6.882
|
Hmm, versuchs mal mit einem Subselect: Code: SELECT
t1.`id` AS `advertid`, t1.`user_id`, t1.`title`, t1.`timesent`, t1.`description`, t1.`numvisits`,
`users`.*,
( SELECT group_concat( t3.`word`, ', ')
FROM `tags` AS t3
LEFT JOIN `adverts_tags` AS t4 ON ( t3.`id` = t4.`tag_id` )
WHERE t4.`advert_id` = t1.`id`
) AS tags
FROM `adverts` AS t1
LEFT JOIN `users` AS t2 ON t1.`user_id` = t2.`id`,
WHERE (t1.`status` = 'active') AND ( t1.`id` = '90')
__________________ (\__/) (='.'=) (")_(") |
| | |
| | #3 (permalink) |
| n.a. Registriert seit: Aug 2005 Ort: Berlin
Beiträge: 146
|
Hat auf Anhieb funktioniert, vielen lieben Dank! Nachtrag: Korrektur für die Trennzeichenkette: Code: SELECT
adverts.`id` AS `advertid`, adverts.`user_id`, adverts.`title`, adverts.`timesent`, adverts.`description`, adverts.`numvisits`,
`users`.*,
(
SELECT GROUP_CONCAT(tags.`word` SEPARATOR '*TTT*')
FROM `tags`
LEFT JOIN `adverts_tags` ON (tags.`id` = adverts_tags.`tag_id` )
WHERE adverts_tags.`advert_id` = adverts.`id`
) AS tags
FROM `adverts`
LEFT JOIN `users` ON adverts.`user_id` = users.`id`
WHERE (adverts.`status` = 'active') AND (adverts.`id` = '201') Geändert von automatix (02-10-2010 um 14:35 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| cairngorm: daten holen. | Grau | Flex programmieren | 12 | 25-05-2010 06:20 |
| Alle 30 Sek. XML Daten holen | baal81 | ActionScript 3 | 46 | 05-11-2009 16:22 |
| XML-Daten von PHP holen | nobima | Flash Einsteiger | 4 | 02-09-2007 23:02 |
| Daten aus Datenbank holen | eleven11 | Server-Seite allgemein | 8 | 12-02-2007 08:17 |
| mittel php Daten in Flash holen | sandy_w220 | Flash MX 2004 | 1 | 19-02-2006 17:36 |