Mysql abfrage über 2 tabellen.

Status
Nicht offen für weitere Antworten.
S

sengir45

Gast
hallo habe ein problem mit meiner abfrage. hoffe ihr könnt mir helfen.

Tabelle 1:
Artikeltabelle:
id name kategorie
1 bla 3
2 bla 4


Tabelle2:
Hirachietabelle fuer kategorien:

id kat_name vater
1 Autos 0
2 Sportartikel 0
3 VW 1
4 Opel 1



so meine abfrage ist jetzt das ich alle ids aus tabelle1 haben will die die vater id 1 in tabelle 2 haben, wenn ich als parameter die übergeordnete kategorie id angebe.

also kategorie1 --> alle artikel die in kategorie 1 sind anzeigen.

abfrage bis jetzt :


Code:
"SELECT * from artikel where id = (select id from kategorie where vater='"+k_id+"') order by id desc";

als fehlermeldung bekomme ich: Subquery returns more than 1 row
was ja auch berechtigt ist. weiss aber nicht wie ich das am besten aufschlüsseln kann. hat jemand ne idee ??

danke euch !!

lg
 

DP

Top Contributor
select * from artikel, kategorie where artikel.id = kategorie.id and vater = x;
 

FenchelT

Bekanntes Mitglied
DP hat gesagt.:
select * from artikel, kategorie where artikel.id = kategorie.id and vater = x;

Hallo,

koennte mir vorstellen, dass das Ergebnis ein wenig verwirrend wird, wenn Du den eindeutigen Schluessel der Tabelle Kategorie mit dem eindeutigen Schluessel der Tabelle Artikel joinst :wink:

@Gast
Code:
SELECT kategorie.*, artikel.*
FROM kategorie INNER JOIN artikel ON kategorie.id = artikel.kategorie
WHERE vater = x

ACHTUNG: Ein INNER JOIN liefert immer nur die Menge Datensaetze zurueck, die in beiden Tabellen vorhanden sind.
Solltest Du DS in Tabelle Kategorie haben, die keine Auspraegung in Tabelle Artikel haben
und diese auch ausgeben wolen, musst Du INNEr JOIN durch LEFT OUTER JOIN bzw RIGHTH OUTER JOIN ersetzen.

Gruesse
 

DP

Top Contributor
sorry, meinte

select * from artikel, kategorie where artikel.id = kategorie.artikel_id and kategorie.vater = x;
 
G

Guest

Gast
erstmal vielen dan fuer eure hilfe. es klappen beide variationen wobei ich bei der ausgabe bei beiden das gleiche problem habe, bzw der gleiche"fehler" auftritt. es werden viele ids mit attributen doppelt ausgegeben. also abfrage sieht so aus :

"select * from auktionen, kategorie where auktionen.kategorie = kategorie.id and kategorie.vater = '"+k_id+"'";
(bei der anderen abfrage sieht das ergebnis gleich aus)

tabellen mit inhalt:

Tabelle: auktionen

id name kategorie
93 VW Golf 3
95 badehose 5
96 golf 5 8
97 golf gti 3
92 Tennisschläger 10
91 mazda 8



Tabelle: kategorie

id kat_name vater
1 Autos 0
2 Sportartikel 0
3 VW 1
4 opel 1
5 Schwimmen 2
7 honda 1
8 mazda 1
9 porsche 1
10 Tennis 2
11 Basketball 2


so, wenn ich als parameter jetzt 1 eingebe fuer alle artikel die in autos drin sind bekomme ich folgendes ergebnis:

Art-Nr.: 93-Name: VW Golf//
Art-Nr.: 93-Name: VW Golf//
Art-Nr.: 96-Name: golf 5//
Art-Nr.: 93-Name: VW Golf//
Art-Nr.: 96-Name: golf 5//
Art-Nr.: 97-Name: golf gti//
Art-Nr.: 93-Name: VW Golf//
Art-Nr.: 96-Name: golf 5//
Art-Nr.: 97-Name: golf gti//
Art-Nr.: 91-Name: mazda//

also viele ergebnisse doppelt.

eingabe: 2 fuer Sportartikel:
ausgabe:

Art-Nr.: 95-Name: badehose//
Art-Nr.: 95-Name: badehose//
Art-Nr.: 92-Name: Tennisschläger//

habt ihr noch ne idee ????

danke euch !!!
 

FenchelT

Bekanntes Mitglied
Hallo zusammen,

mache aus
Code:
"select * from auktionen, kategorie where auktionen.kategorie = kategorie.id and kategorie.vater = '"+k_id+"'";

Code:
"select distinct * from auktionen, kategorie where auktionen.kategorie = kategorie.id and kategorie.vater = '"+k_id+"'";

EDITH:
Lies Dir bitte im Internet ein Tutorial bezgl SQL durch.
Das ist ein gut gemeinter Rat. Es ist nichts schlimmer als Daten auszuwerten und diese zu interpretieren und nicht zu wissen, wie diese zustandekommen, bzw wie sich das was ich an Befehlen einsetze, auf das Ergebnis auswirkt :wink:
 
G

Guest

Gast
ehm.. danke aber mit distinct habe ich es ereits versucht. das klappt auch nicht. war auch mein erster gedanke und habe gehofft das es funktioniert. tut es aber leider nicht :)

wär ja auch zu einfach gewesen.


danke
 

DP

Top Contributor
select * from auktionen, kategorie where auktionen.kategorie = kategorie.id and kategorie.vater = '"+k_id+"'" group by auktionen.id;

ist bei größeren tabellen auch schneller als distinct.
 

FenchelT

Bekanntes Mitglied
DP hat gesagt.:
select * from auktionen, kategorie where auktionen.kategorie = kategorie.id and kategorie.vater = '"+k_id+"'" group by auktionen.id;

ist bei größeren tabellen auch schneller als distinct.


Moin DP,

das ist aber wieder die mySQL-eigene Interpretation des GROUP BY.
Auch wenn es zum Ziel fuehren mag, macht es keinen Sinn.

Aus beiden Tabellen alle Felder zu selektieren und dann nur auf ein Feld zu gruppieren ist nicht wirklich im Sinne des GROUP BY

Gruesse und einen schoenen Start in die Woche
 
G

Guest

Gast
hmm... das geht irgendwie auch nicht.
ich weiss nicht wieso.. bekomme immer einige ausgaben doppelt.. weiss jmd woran das liegen kann ?

das es nicht performant oder sinnig ist lasse ich mal dahingestellt. muss es nur bis donnerstag fertig haben. und da sollte es erstmal laufen--- egal wie :)

hoffe ihr habt noch weitere vorschläge..

vielen dank !!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
S MySQL Abfrage: Wenn Feld leer, alles anzeigen Datenbankprogrammierung 5
J where Abfrage auf ein mysql date feld Datenbankprogrammierung 5
S MySQL Abfrage in showInputDialog laden Datenbankprogrammierung 6
S MySQL: Abfrage auf 2 Tabellen durch join Datenbankprogrammierung 5
V MySql abfrage funktioniert auf einmal nicht mehr Datenbankprogrammierung 2
S Problem bei MySql abfrage Datenbankprogrammierung 11
F Abfrage eines DB Feldes aus einer mySQL Datenbank Datenbankprogrammierung 2
S MySQL-Abfrage unter java funktioniert nicht! Datenbankprogrammierung 4
P zu langsame mySQL Abfrage Datenbankprogrammierung 8
A java & mysql abfrage mit variablen auswerten, wie? Datenbankprogrammierung 8
R Problem mit MySQL-Abfrage Datenbankprogrammierung 36
M [MYSQL] Problem mit Connection und Abfrage Datenbankprogrammierung 6
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben