php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.05.2005, 11:33  
Erfahrener Benutzer
 
Registriert seit: 12.07.2004
Beiträge: 219
d-jango zeigte ein beschämendes Verhalten in der Vergangenheit
d-jango eine Nachricht über ICQ schicken
Standard Einzelnen Beitrag in nem Join

Hi zusammen,

Habe ein kleines Forum programmiert. Hab da aber jetzt ein kleines Problem. Ich möchte gerne eine Übersicht der letzten 5 Beiträge, die gepostet wurden.

Habs mit nem SELECT DESTINCT probiert, aber er gibt mir trotzdem die doppelten Beiträge an.

HIer mein derzeitiges Query:


PHP-Code:
<?php
$qry 

"SELECT thema_id, thema_name,  " .
"        beitrag_id , beitrag_zeit, beitrag_user, beitrag_text, beitrag_thema, ".
"         user_id, user_nick " .
"FROM forum_thema t " .
"LEFT JOIN forum_beitrag b ON (b.beitrag_thema = t.thema_id) " .
"LEFT JOIN user_daten d ON (b.beitrag_user = d.user_id ) " .
"ORDER BY beitrag_zeit DESC ".
"LIMIT 5";
?>
Es sollen aber keine Themen doppelt vorkommen.. Wer kann helfen?!
__________________
http://www.fun2stay.de
d-jango ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.05.2005, 11:40  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

naja dein problem ist dass eben die datensätze nicht gleich sein, weil sich ja beitrag_user zeit und so unterscheiden. aber ein weg das zu umgehen fällt mir nicht ein, ausser es in 2 querys aufzuteilen ...
robo47 ist offline   Mit Zitat antworten
Alt 23.05.2005, 11:44  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Code:
SELECT
  thema_id, thema_name, beitrag_id,
  beitrag_zeit, beitrag_user, beitrag_text,
  beitrag_thema, user_id, user_nick
FROM
  forum_thema AS t
  LEFT JOIN
    forum_beitrag AS b
      ON (b.beitrag_thema = t.thema_id)
  LEFT JOIN
    user_daten AS d
      ON (b.beitrag_user = d.user_id )
GROUP BY
  thema_id
ORDER BY
  beitrag_zeit DESC
LIMIT
  5
So?
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Alt 23.05.2005, 11:51  
Erfahrener Benutzer
 
Registriert seit: 12.07.2004
Beiträge: 219
d-jango zeigte ein beschämendes Verhalten in der Vergangenheit
d-jango eine Nachricht über ICQ schicken
Standard

jein... das klappt, dass er die Themen nicht doppelt nimmt.. aber er zeigt nicht den aktuellsten eintrag an...
__________________
http://www.fun2stay.de
d-jango ist offline   Mit Zitat antworten
Alt 23.05.2005, 11:53  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Zitat:
Zitat von d-jango
jein... das klappt, dass er die Themen nicht doppelt nimmt.. aber er zeigt nicht den aktuellsten eintrag an...
Stimmt, kann er nicht, da das Mapping Thema<->Beitrag so undefiniert ist. Ich verstehe Deine Anforderung auch nicht so richtig... Das was Du willst, kannst Du meines Erachtens mit einer Abfrage nicht lösen.
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Alt 23.05.2005, 11:57  
Erfahrener Benutzer
 
Registriert seit: 12.07.2004
Beiträge: 219
d-jango zeigte ein beschämendes Verhalten in der Vergangenheit
d-jango eine Nachricht über ICQ schicken
Standard

ok.. danke für die hilfe.. dann muss ich noch ein bissl basteln..
kann dann ja meine lösung hier posten
__________________
http://www.fun2stay.de
d-jango ist offline   Mit Zitat antworten
Alt 23.05.2005, 12:21  
Gast
 
Beiträge: n/a
Standard

ab MYSQL-Version 4.1
wäre folgende SUBSELECT-Variante möglich,
die in dem WHERE-Teil der Abfrage untergebracht ist:
PHP-Code:
<?php
$qry 
"
SELECT thema_id, thema_name,
      beitrag_id , beitrag_zeit, beitrag_user, beitrag_text, beitrag_thema,
       user_id, user_nick
FROM forum_thema t
INNER JOIN forum_beitrag b ON (b.beitrag_thema = t.thema_id)
INNER JOIN user_daten d ON (b.beitrag_user = d.user_id )
WHERE beitrag_zeit IN (SELECT MAX(beitrag_zeit) FROM forum_beitrag GROUP BY beitrag_thema)
ORDER BY beitrag_zeit DESC
LIMIT 5"
;
?>
Ansonsten musst du - wie robo47 schon sagte - zwei Abfragen bauen.

mfG ~dilemma~

ps:
ein INNER JOIN sollte eigentlich auch genügen.
  Mit Zitat antworten
Alt 23.05.2005, 12:45  
Erfahrener Benutzer
 
Registriert seit: 12.07.2004
Beiträge: 219
d-jango zeigte ein beschämendes Verhalten in der Vergangenheit
d-jango eine Nachricht über ICQ schicken
Standard

dilemma!!

Du hast mein Dilemma beendet ... vielen Dank

*freu*

PROBLEM SOLVED
__________________
http://www.fun2stay.de
d-jango ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrfach Join lazydog Datenbanken 2 08.05.2008 16:09
JOIN Problem pPanther Datenbanken 7 06.03.2008 17:26
[gelöst]LEFT JOIN, DINSTINCT und trotzdem doppelte?!?! stefanjann Datenbanken 10 06.02.2008 11:49
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
Komplexes Join Problem pPanther Datenbanken 7 03.08.2007 23:16
JOIN ( ich weiß das hat es schon oft... ) Canni PHP Tipps 2007 6 29.05.2007 22:25
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
SQL-Abfrage evt. mit JOIN mariohaehni Datenbanken 4 07.09.2006 14:26
Join auf 2 verschiedene Felder Tommek Datenbanken 6 25.07.2006 20:39
JOIN problem 2 tabellen - zeile(tab1) zu spalte(tab2) Ministry Datenbanken 7 31.05.2006 10:31
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
INNER JOIN + Suchkriterien + Abfrage duerov PHP Tipps 2006 4 04.04.2006 12:47
inner join zeigt gleiche spalten nur 1x Datenbanken 3 22.02.2006 17:11
inner join aus db PHP Tipps 2006 8 22.01.2006 01:23
[Erledigt] Join Datenbanken 15 09.03.2005 08:44


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.