Autor |
Nachricht |
.MacSven
Threadersteller
Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Mi 23.04.2008 09:43
Titel MySQL: Anhand von ID Daten aus anderer Spalte auswählen |
|
|
Hallo,
ich hab mal wieder ein kleines Problem und finde bei Google und hier Forum keine Lösung.
Ich habe mal einige SQL-Tutorials überflogen und denke, dass es was mit Subqueries zu tun hat.
Also folgendes Problem:
Ich habe eine Tabelle mit mehreren Spalten... wichtig sind hier die Spalte ID (auto_increment) und ip des Users. Aus dieser Tabelle möchte ich nun durch Eingabe der ID ALLE Daten der der Tabelle auswählen, bei denen die IP's die gleiche ist, wie bei der Zeile mit der eingegebenen ID!
Kurz zum Verständnis:
Kunden können in einem Formular eine Reise buchen; Hauptbucher und alle Mitfahrenden erhalten je einen eigenen Eintrag in der Tabelle mit eigener ID. Die IP ist jedoch die selbe, da das Formular ja von einer Person abgeschickt wird.
Wie kann ich die Abfrage also programmieren, dass ich alle Einträge mit der selben IP bekomme?
Hintergrund ist einfach, dass ich meinen Kollegen nicht zumuten möchte, die IP einzutippen (das wäre ja die einfachste Lösung) sondern sie sollen die Möglichkeit haben, das Ganze anhand der ID zu selektieren.
Danke schon mal im Vorraus!
Hab nochmal weiter gesucht... könnte das vielleicht sowas sei:
Code: | SELECT *, SUM(ip)
FROM fun_buchung
WHERE id = $eingegebene_id
HAVING SUM(ip) = LIKE ip IN id |
???
Zuletzt bearbeitet von .MacSven am Mi 23.04.2008 10:07, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 23.04.2008 10:06
Titel
|
|
|
Das geht mit nem einfachen, (inneren) join
|
|
|
|
|
Anzeige
|
|
|
.MacSven
Threadersteller
Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Mi 23.04.2008 10:21
Titel
|
|
|
verbindet man mit INNER JOIN nicht 2 Tabellen miteinander?
Ich kann da leider nichts passendes zu finden, was mir weiterhelfen würde. Könntest du mir den Zusammenhang vielleicht als Code geben?
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 23.04.2008 10:32
Titel
|
|
|
Ich kau' hier prinzipiell keinen Code vor. Aber du kannst durchaus ein- und die selbe Tabelle mit einem Join verknüpfen (das macht bspw. Sinn, wenn du parent/child-Beziehungen abfragen willst).
prinzip:
select spalten... from tabelle a inner join tabelle b on b.ip = a.ip where a.id = {$id}
mitm subselect müsste es natürlich auch gehen.
select spalten from tabelle where ip in ( select ip from tabelle where id = id)
wobei ich hier die syntax nicht richtig im kopf hab, das kann auch durchaus falsch sein . dann verweise ich auf die doku. aber prinzip is klar, oder?
|
|
|
|
|
.MacSven
Threadersteller
Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Mi 23.04.2008 10:44
Titel
|
|
|
Ja, Prinzip ist eigentlich verstanden. Allerdings schreibst du in deinem Beispiel jetzt Tabelle A und B... Es ist ja nur eine Tabelle.
Also ich würde es dann so machen:
Code: | SELECT * FROM fun_buchung
INNER JOIN fun_buchung ON fun_buchung.ip = fun_buchung.ip
WHERE fun_buchung = $eingegebene_id |
Werds mal so probieren...
Zuletzt bearbeitet von .MacSven am Mi 23.04.2008 10:44, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 23.04.2008 10:47
Titel
|
|
|
Ich dachte, du hättest die Doku gelesen?
Ich mache ein select from tabellenname a inner join tabellenname b.
das ist äquivalent zu select from tabellenname AS a innerjoin tabellenname AS b.
für "tabellenname" gibst du einfach den namen deiner tabelle ein. Du brauchst die Aliases natürlich, um deine Verknüpfungsbedingungen korrekt formulieren zu können.
Zuletzt bearbeitet von bacon am Mi 23.04.2008 10:47, insgesamt 1-mal bearbeitet
|
|
|
|
|
.MacSven
Threadersteller
Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Mi 23.04.2008 11:32
Titel
|
|
|
Hatte das dann wohl falsch verstanden...
Ich habs jetzt so versucht:
Code: | SELECT * FROM buchung_fun a INNER JOIN buchung_fun b ON b.ip = a.ip WHERE a.id = $ip_by_id ORDER BY a.id DESC |
Problem ist jetzt aber folgendes:
angenommen es sind 3 Einträge mit der gleichen IP vorhanden, dann bekomme ich 3x die Daten von der eingegebenen ID ausgespuckt! Das ist ja nun überhaupt nicht das, was ich will...
Wo liegt der Fehler?
|
|
|
|
|
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Mi 23.04.2008 11:35
Titel
|
|
|
schau dir das mal an,
danach hatte ichs auch "verstanden":
klick
|
|
|
|
|
|
|
|
Ähnliche Themen |
PHP/MySQL - Datenabfrage anhand von Datum (auch heute)
[php / mysql] Mysql Daten in php als Link ausgeben
[JS/PHP] Daten Aus Select-Box auswählen und aus DB auslesen
Daten aus MySql auslesen
Daten aus TXT oder CVS für MySQL verwenden
Dynamische MySql daten abfrage
|
|