mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 21:48 Benutzername: Passwort: Auto-Login

Thema: MySQL: Anhand von ID Daten aus anderer Spalte auswählen vom 23.04.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> MySQL: Anhand von ID Daten aus anderer Spalte auswählen
Seite: 1, 2  Weiter
Autor Nachricht
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Mi 23.04.2008 09:43
Titel

MySQL: Anhand von ID Daten aus anderer Spalte auswählen

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 23.04.2008 10:06
Titel

Antworten mit Zitat Zum Seitenanfang

Das geht mit nem einfachen, (inneren) join
  View user's profile Private Nachricht senden
Anzeige
Anzeige
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Mi 23.04.2008 10:21
Titel

Antworten mit Zitat Zum Seitenanfang

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?
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 23.04.2008 10:32
Titel

Antworten mit Zitat Zum Seitenanfang

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 *zwinker*. dann verweise ich auf die doku. aber prinzip is klar, oder?
  View user's profile Private Nachricht senden
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Mi 23.04.2008 10:44
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 23.04.2008 10:47
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Mi 23.04.2008 11:32
Titel

Antworten mit Zitat Zum Seitenanfang

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?
  View user's profile Private Nachricht senden
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Mi 23.04.2008 11:35
Titel

Antworten mit Zitat Zum Seitenanfang

schau dir das mal an,
danach hatte ichs auch "verstanden":

klick
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ä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
[php/mysql] daten aus DB per zufall auslesen
Daten aus TXT oder CVS für MySQL verwenden
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.