php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.01.2007, 00:09  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard where abfrage liefert zu viele ergebnisse

tja leute .. wieder mal ne idiotenfrage
also. ich habe folgende tabellen:

squads(id, pos, name, game)
member(id,nick, rang, squads)

nun soll folgende abfrage jeweils den 'nick' und den 'rang' zu tage fördern.
das klappt auch, nur werden mir die nicks viel zu oft angezeigt!

abfrage:
Code:
SELECT
	                m.nick AS nick,
	                m.rang AS rang,
	                sq.id AS sqaud_id
	            FROM
	                member AS m,
	                squads AS sq
	            WHERE
	            	 m.squads LIKE '%1%' 
	            ORDER BY
	                rang DESC
ich glaube es liegt daran das ich bei member folgendes eingetragen hab:
member(`1`, `raB!`, `2`, `1,2,3,4`)

was muss ich ändern?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.01.2007, 00:25  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wofür fragst du denn überhaupt die squad_id ab? Wenn du sie nicht brauchst dann lass es doch weg, gibt nur Chaos. Und wenn du sie weißt -> %1% hier die 1 musst du sie ebenfalls nicht auslesen ... ?
Flor1an ist offline   Mit Zitat antworten
Alt 20.01.2007, 00:26  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Du solltest schon eine Bedingung für deinen Join angeben. Momentan kombinierst du jeden Eintrag aus member mit jedem Eintrag aus squads.

Außerdem solltest du das ganze normalisieren (nicht 1,2,3,4 in die squads Spalte sondern eine extra Tabelle ...).

Such am besten einfach mal nach "Normalisierung" und/oder Join und schau dir das mal an.
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 20.01.2007, 01:04  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aslo .. ich frage nicht die squad_id sondern die member id ab da ich die für nen link brauche. desweiteren ist 1 der wert der an die funktion übergeben wird (ändert sich also auch).
desweiteren kapier ich das mit der normaliesierung nich so wirklich ... es muss doch möglich sein eine art regulären ausdruck zu formulieren?!
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 20.01.2007, 03:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

du suchst wahrscheinlich DISTINCT
nikosch ist offline   Mit Zitat antworten
Alt 20.01.2007, 19:58  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hä? sorry aber mit distinct komme ich hier anscheinend auch nicht weiter...
werde warscheinlich einfach das machen müssen was Agrajag gesagt hat
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 20.01.2007, 23:37  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

problem gelöst .. habe eine zusätzliche tabelle angelegt
squad_member(id, squad_id, member_id)
die DISTINCT anweisung habe ich ehrlich gesagt nicht verstanden .. ich habe einfach GROUP BY vergessen
die abfrage sieht dann so aus:
Code:
SELECT 
	                m.nick AS nick,
	                m.rang AS rang,
	                m.id AS m_id,
	                sq.id AS squad_id
	            FROM
	                member AS m,
	                squads AS sq,
	                squad_member AS sqm
	            WHERE
	            	 sqm.squad_id = '$id'
	             AND
	                m.id =  sqm.member_id
	            GROUP BY
	            	m.nick
	            ORDER BY
	                rang DESC
wenn ich am anfang SELECT DISTINCT benutze kommt das gleiche raus! wozu dient die funktion überhapt ^^
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 21.01.2007, 04:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

DISTINCT entfernt doppelte Datensätze, genau das wonach du oben gefragt hast ("nur werden mir die nicks viel zu oft angezeigt! "). Manual lesen hilft manchmal:
Zitat:
The options DISTINCT, DISTINCTROW and ALL specify whether duplicate rows should
be returned. The default is (ALL), all matching rows are returned. DISTINCT and
DISTINCTROW are synonyms and specify that duplicate rows in the result set should be
removed.
nikosch ist offline   Mit Zitat antworten
Alt 22.01.2007, 21:28  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich habe die funktion benutzt! es wurde nix verändert, auch wenn es so doll im manual beschrieben ist
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 22.01.2007, 22:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

dann hatten die datensätze der ergebnismenge wohl jeweils mindestens ein feld, das unterschiedlich war.
nikosch 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
Abfrage -> where String anhängen Papst Datenbanken 2 28.12.2007 23:11
Where Abfrage durchsuchen $$$ ThiKool $$$ Datenbanken 3 12.09.2007 16:42
erweiterte abfrage - where DarkManX Datenbanken 2 02.02.2007 17:14
Mehrfach where in der ABfrage? Kori Datenbanken 4 16.01.2007 16:46
Ergebnisse einer Abfrage in Tabelle speichern PsychoEagle Datenbanken 0 21.09.2006 15:59
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
Mehrere Werte in WHERE abfrage McNet Datenbanken 6 23.04.2006 02:06
SELECT WHERE datetime abfrage - Optimierung mrSpok Datenbanken 15 23.03.2006 19:08
Ergebnisse einer MySQL Abfrage an nächste seite übertragen Plague PHP Tipps 2005-2 4 07.09.2005 21:51
Nach MySQL abfrage noch WHERE ? atom-dragon PHP Tipps 2005-2 6 12.06.2005 04:21
php Variablen in MySQL Abfrage verwenden (WHERE Bedingung) PHP Tipps 2005 20 20.04.2005 20:05
Ergebnisse für MySQL Abfrage Mano PHP Tipps 2005 6 21.03.2005 12:28
[Erledigt] WHERE Abfrage wird ignoriert Datenbanken 1 22.02.2005 21:19
[Erledigt] MYSQL Abfrage -> Ergebnisse auf anzahl per seite begrenze PHP Tipps 2004-2 2 21.11.2004 21:28
[Erledigt] Doppelte WHERE Abfrage Datenbanken 2 13.11.2004 23:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
the best things liefert nicht, aus welchen land liefert die firma the best things, datenbank zu viele ergebnisse

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:48 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.