Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.08.2005, 19:03   #1
TP-Senior
 
Registriert seit: Dec 2001
HeinsMarcel macht alles soweit korrekt
Question

mysql mit zwei tabellen und where


Hallo!

folgende problem mit Mysql

ich möchte eine abfrage aus 2 tabellen generieren, wobei die bedingungen zur ergebniszurückgabe in der einen tabelle sind und die daten in der anderen,

Tab1:glo Tab2: fachglossar

in der tabelle 1 sind alle stichworte eines glossars gespeichert geornet nach den autoren. die tabelle 2 bildet das fachglossar eines bestimmten fachbereichs, so stehen dort einerseits die ID's der stichworte drin die auch vom autor des fachbereichs angelegt wurden, anderersits kann der autor eines fachbereichs aber auch stichworte aus einem anderen fachbereich in sein fachglossar eijnbinden. das ist in Tab2 gespeichert, also alle ID's von Stichworten, die ein autor sowaohl slebst angelegt hat bzw mit seinem fachglossar verknüpft hat.

Tab2 hat bloß 2 felder id_user und id_glo

Tab1 enthält alle daten zu einen stichwort so auch die daten ob es im front-end dem user überhaupt angezeigt wird oder ob es sich noch im redaktionsprozess befindet.

ich möchte alle stichworte die in der tab 2 (fachglossar) einen autor(id_user) zugeordnet sind auf grundlage einer where bedingung anzeigen lassen. die daten für die where bedingung stehen in tabelle 1,
ich habe schon überlegt das ganze per php auszusorteieren aber das ist ja auch nicht sinn und zweck ner datenbank das man sich alle daten rüberschaufelt und sie dann per php aussortiert.

hier die mysql anweisung die dann per php gesandt wird

SELECT * FROM fachglossar,glo WHERE fachglossar.id_user=$id_user AND glo.glofachkor_dt=1 AND glo.glosprachkor_dt=1 ORDER BY glo.glotitel_dt,glo.glotitel_en

bei der anweisung funktioniert die where klausel jedoch wird ein stichwort nicht nur einmal sondern immer 16 mal aufgerufen.

worran leigt das?

danke und gruß

marcel





Felder: id_glo,
HeinsMarcel ist offline   Mit Zitat antworten


Alt 26.08.2005, 20:20   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Das liegt an Deiner Zuordnung. Da nur Du den genauen Inhalt kennst, wäre es schon sinnvoll, uns die vollständige Struktur beider Tabellen zu zeigen und genau zu sagen, welche Information Du mit der SQL-Anweisung brauchst.

Bei 16 Ergebnissen heisst das ja, das es 16 Datensätze gibt, auf die die Bedingung zutrifft. Also ohne genauere Infos wirds schwer
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 26.08.2005, 20:49   #3
TP-Senior
 
Registriert seit: Dec 2001
HeinsMarcel macht alles soweit korrekt
Question

die struktur der tabs


Jupp hast ja recht, also hier die struktur der tabellen:



Tabelle 1: glo

id_glo | glo_user | glofachkor_dt | glosprachkor_dt | glofachkor_en | glosprachkor_en | glotitel_dt | glotitel_en | glo_bhk | glo_bk | glotext_dt | glotext_en | glotextq_dt | glotextq_en | glohtml_dt | glohtml_en | globild_dt | globild2_dt | globildtitel_dt | globildq_dt | globild_en | globild2_en | globildtitel_en | globildq_en | globild_kombi | glo_datum


Tabelle 2: fachglossar

id_user | id_glo


$sql="SELECT * FROM fachglossar,glo WHERE fachglossar.id_user=$id_user AND glo.glofachkor_dt=1 AND glo.glosprachkor_dt=1 ORDER BY glo.glotitel_dt,glo.glotitel_en"

ich möchte also alle datensätze haben die in der tab2 die entsprechende user-ID haben, aber gleichzeitig bedingungen (where) der tabelle 1 entsprechen.

das komische ist das MySQL mir bei dieser abfrage ein und den selben datensatz, je ID 16 mal auflistet.
hmm..........................?

z.B. so:
Lebensform
Lebensform
Lebensform
Lebensform
Lebensform
Lebensform
.....16 mal

die ID zu diesem datensatz existiert aber bloß einmal, bei andern skripten wo ich bloß die tab1 aufgrundlage der bedingung WHERE abfrage " ... id_user=$glo_user ...." abfrage wird der datensatz auch nur einmal gelistet. Und per PHPMyAdmin habe ich das auch überprüft, der datensatz existiert nur einmal. ... und nicht 16 mal

habe shcon rumprobiert mit verschiedensten konstellationen, aber es will einfach nicht klappen .................

gruß marcel

Geändert von HeinsMarcel (26.08.2005 um 21:02 Uhr).
HeinsMarcel ist offline   Mit Zitat antworten
Alt 26.08.2005, 20:55   #4
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine User
Müsste bei der Bedingung für das JOIN nicht auch ne ON- Bedingung her, anstelle von WHERE?
Adromir ist offline   Mit Zitat antworten
Alt 26.08.2005, 21:05   #5
TP-Senior
 
Registriert seit: Dec 2001
HeinsMarcel macht alles soweit korrekt
Question

On ?


Zitat:
Zitat von Adromir
Müsste bei der Bedingung für das JOIN nicht auch ne ON- Bedingung her, anstelle von WHERE?

ON? habe schon im web gesucht u8nd nichts gefunden haste nen Adresse wo ich mal nachlesen kann was man mit ON macht und machen kann? Habe bis jetzt alles mit PHp aussortiert aber schon wie oben gesagt ist ja nicht sinn und zweck der sache sich alle daten zu holen uns sie dann die Datensätze per PHP auszuwählen die angezeigt werden sollen. In MySql bin ich leider noch nicht so firm.

gruß marcel

Geändert von HeinsMarcel (26.08.2005 um 21:22 Uhr).
HeinsMarcel ist offline   Mit Zitat antworten
Alt 26.08.2005, 21:26   #6
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Bei Join ja.

Du machst einen Full-Join, d.h. Select * from tabelle1, tabelle2 ...

Da ist WHERE ok.
Das Ergebnis ist das kartesische Produkt beider Tabellen.

In Deinem Fall ist es viel sinnvoller einen LEFT JOIN zu nehmen

SELECT * FROM glo LEFT JOIN fachglossar ON fachglossar.id_glo= glo.id_glo WHERE fachglossar.id_user=$id_user AND glo.glofachkor_dt=1 AND glo.glosprachkor_dt=1 ORDER BY glo.glotitel_dt,glo.glotitel_en

(ohne Gewehr)
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 26.08.2005, 21:39   #7
TP-Senior
 
Registriert seit: Dec 2001
HeinsMarcel macht alles soweit korrekt
Thumbs up

Jippi!

also deine sqlanweisung klappt !! Danke!

kannste mir auch noch kur erklären ( wenn die zeit da ist) was da der unterschied ist.
oder gib mir einfach ne internetquelkle und ich lese es nach, ...

.... weil einfach ins skript kopieren ist einfach, verstehen ist besser.

gruß marcel
HeinsMarcel ist offline   Mit Zitat antworten
Alt 26.08.2005, 21:48   #8
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Schön das es klappt.

Erklärung - oh, da müsste ich weit ausholen, vielleicht mach ich mal ein Tutorial über Joins.

Gute Quellen - da gibt es viele. Meist muss man sich aus vielen Seiten die nützlichen Infos rausziehen, eine richtig schöne Erklärung hab ich noch nicht gefunden.
Vielleicht reicht für den Einstieg ja dieses: http://www.little-idiot.de/mysql/mysql-118.html#joins
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 27.08.2005, 00:41   #9
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Zitat:
Zitat von St@eff.en
..... vielleicht mach ich mal ein Tutorial über Joins.
Sorry für Off Topic, aber für so ein Tutorial würde ich auch voten Es ist tatsächlich nicht einfach info zu finden, die einem den Einstieg in das Verknüpfen von Tabellen und Datenbanken leicht gestalten. (liegt aber vielleicht an der Materie "Datenbank" an sich)

Deswegen ein klares für ein Tutorial
Rizzo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
mysql mit zwei tabellen und where mysql mit zwei tabellen und where
« Dateiupload und Datei öffnen bei der Arbeit mit zwei servern | [Datenbanken] Mehrdimensionale Arrays... »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67