php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.03.2006, 21:40  
Neuer Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 13
MasterMind
Standard Select über 2 Tabellen

Hallo,

ich bin neu hier und habe natürlich auch eine Frage. Ich habe folgende Tabellen

subcategories
id name description category subCategory enabled

articles
id orderNumber name description category subCategory enabled

Ich experimentiere scho ein ganze zeitlang mit phpMyAdmin, ich bekomme es einfach nicht. Ich suche eine Select-Anweisung, die mir die Namen der Subcategorien und die Anzahl der dazugehörigen Artikel liefert, wobei category bekannt ist. Verknüpft sind die Tabellen mit

subcategories.category = articles.category und subcategories.subCategory = articles.subCategory

Mein letzter Versuch:

select subcategories.name, count(articles.name) as acount
from subcategories inner join articles on subcategories.category=articles.category and subcategories.category=18
group by subcategories.name

Das liefert mir die richtigen Namen, aber der Wert von acount ist falsch, da bekomme ich jeweils die Gesamte Anzahl und nicht Anzahl zu der SubCategory:

Code:
name   acount  
name1  71 
name2  71 
name3  71
Richtig ist aber
Code:
name   acount  
name1  15 
name2  16 
name3  40
Ich hoffe, dass ich mein Problem ausführlich genug geschildert habe und ihr mir helfen könnt.

MfG
MasterMind

PS: Ich befürchte, dass ich die Sache mit "INNER JOIN" noch nicht wirklich verstanden habe, beschäftige mich erst ein paar Tage mit SQL
MasterMind ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.03.2006, 22:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich versteh deinen Tabellenaufbau nicht, warum haben beide Tabellen die Spalten category und subCategory? Welches ist die Verbindungsspalte? ID?

Zeig mal 2-3 Einträge aus jeder Tabelle.
Zergling-new ist offline   Mit Zitat antworten
Alt 28.03.2006, 00:38  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard Re: Select über 2 Tabellen

Augen auf, lieber Zergling

Zitat:
Zitat von MasterMind
subcategories.category = articles.category und subcategories.subCategory = articles.subCategory
Zum Problem:

select subcategories.name, count(articles.name) as acount
from subcategories inner join articles on subcategories.category=articles.category and subcategories.subCategory = articles.subCategory where subcategories.category=18
group by subcategories.id

P.S.: Group by einem numerischen Feld ist eventuell etwas schneller. Nur so am Rande, zudem ist es je nach Tabelleninhalte auch eindeutiger.
mepeisen ist offline   Mit Zitat antworten
Alt 28.03.2006, 08:32  
Neuer Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 13
MasterMind
Standard

Hallo und erst mal danke. Ich komme leider frühestens heute Abend zum testen. Ich melde mich dann auf jeden Fall noch mal.

MfG
MasterMind
MasterMind ist offline   Mit Zitat antworten
Alt 28.03.2006, 12:39  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Komische Verknüpfung
Zergling-new ist offline   Mit Zitat antworten
Alt 28.03.2006, 12:58  
Neuer Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 13
MasterMind
Standard

Zitat:
Zitat von Zergling
Komische Verknüpfung
Hmm, das will ich nicht abstreiten, vielleicht ist meine DB-Struktur nicht optimal. Wie schon erwähnt, MySQL-Neuling. Wenn du eine bessere Struktur vorschlagen könntest, wäre ich dir dankbar.

Ich versuche mich an einem Shop. Zu den schon erwähnten Tabellen gibt es noch die Tabelle

categories
id name description .....

In subcategories und articles beziehen sich die Spalten category auf die id in categories.

In categories gibt es z.B. eine Kategorie Festplatten
In subcategories gibt es dann IDE, ATA
In articles gibt es dann die passenden Größen
Code:
Drucker            // Kategorie
Festplatten        // Kategorie 
  |- IDE             // Subkategorie
      |- 160GB         // Artikel
	   |- 250GB         // Artikel
  |- SATA            // Subkategorie
      |- 160GB         // Artikel
	   |- 250GB         // Artikel
Grafikkarten       // Kategorie
Falls du noch mehr Infos brauchst, bitte Bescheid geben.

MfG
MasterMind
MasterMind ist offline   Mit Zitat antworten
Alt 28.03.2006, 21:38  
Neuer Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 13
MasterMind
Standard Re: Select über 2 Tabellen

Zitat:
Zitat von mepeisen
select subcategories.name, count(articles.name) as acount
from subcategories inner join articles on subcategories.category=articles.category and subcategories.subCategory = articles.subCategory where subcategories.category=18
group by subcategories.id
Schade, funktioniert nicht richtig, das Ergebnis:

name1 13
name2 49
name3 7

Bei einem "Select count(*) from articles where category=18" kommt als Ergebnis 71 raus, oben fehlen also 2. Vielleicht noch eine Idee?

MfG MasterMind
MasterMind ist offline   Mit Zitat antworten
Alt 28.03.2006, 22:44  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Mach mal ein Count auf articles.id. Eventuell hast du zwei mit NULL-Werten in articles.name?
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline   Mit Zitat antworten
Alt 29.03.2006, 09:35  
Neuer Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 13
MasterMind
Standard

Zitat:
Zitat von mepeisen
Mach mal ein Count auf articles.id. Eventuell hast du zwei mit NULL-Werten in articles.name?
Hallo und nochmal danke. Das könnte ohne weiteres sein, aber auch heute gilt: Ich komme leider erst heute Abend zum testen. Ich melde mich dann auf jeden Fall noch mal.

MfG
MasterMind
MasterMind ist offline   Mit Zitat antworten
Alt 29.03.2006, 20:32  
Neuer Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 13
MasterMind
Standard

Zitat:
Zitat von mepeisen
Mach mal ein Count auf articles.id. Eventuell hast du zwei mit NULL-Werten in articles.name?
So, soeben getestet, aber leider trifft deine Vermutung nicht zu. Alle Artikel haben einen Namen, also kein Null-Wert vorhanden. Hast du vielleicht noch eine Idee?

MfG
MasterMind
MasterMind 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
[Erledigt] Select über zwei Tabellen / Performanceproblem Wolla Datenbanken 20 15.06.2008 00:58
SELECT über zwei Tabellen KingCrunch Datenbanken 9 23.03.2007 04:01
select mit inhalten aus mehreren Tabellen wurtzel Datenbanken 6 02.12.2006 17:37
SELECT aus 2 Tabellen jens21 Datenbanken 3 30.08.2006 00:54
[Erledigt] SELECT aus zwei "gleichen" Tabellen patr1k Datenbanken 2 05.07.2006 11:57
Select über zwei Tabellen danix-dj PHP Tipps 2006 11 22.05.2006 15:13
Select über mehrere tabellen Sclot Datenbanken 14 24.11.2005 16:56
[Erledigt] SELECT * FROM 2 Tabellen - Problem Datenbanken 1 01.09.2005 16:30
select über drei Tabellen Sonja PHP Tipps 2005 10 12.05.2005 14:27
SELECT über 4 Tabellen mit DISTINC PHP Tipps 2005 2 08.03.2005 19:50
Select mit 2 Tabellen Sonja PHP Tipps 2005 5 13.02.2005 12:49
mehrere tabellen verknüpfen bei select Datenbanken 3 29.09.2004 11:00
[Erledigt] INSERT INTO SELECT an mehrere Tabellen? Datenbanken 6 17.09.2004 16:57
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
[Erledigt] Join für Select Count(`id`)-Abfrage über 4 Tabellen Datenbanken 4 10.07.2004 18:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select aus 2 tabellen, select count über mehrere tabellen, select * von 2 tabellen, php select über 2 tabellen, select * from where mehrer tabellen, select count php mehrere tabellen, select auf zwei tabellen mit innerjoin, select * von zwei tabellen

Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 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.