SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.06.2009, 09:06:42
morb morb ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 38
Beiträge: 5
Einträge aus 2 Tabellen vergleichen und löschen

Hallo erstmal!
Ich habe folgendes Problem und weiß nicht so recht wie ich es lösen soll.
Ich habe zwei Tabellen:
  1. Tabelle: Veranstaltungen
  2. Tabelle: Beschreibungen

In der ersten Tabelle sind wie der Name schon sagt Veranstaltungen gespeichert, dort kommen mehrere Veranstaltungen mit dem gleichen Titel vor.
In der zweiten Tabelle sind die Titel der Veranstaltungen der Veranstaltungstabelle per Distinct gesammelt und es kann jeder Veranstaltung eine Beschreibung zugeordnet werden.

Da sich die Veranstaltungstabelle regelmäßig ändert, also Veranstaltungen dazukommen und verschwinden, möchte ich die nicht mehr aufgeführten Veranstaltungen aus der Beschreibungstabelle löschen und die neuen hinzufügen.

Mein Problem ist das löschen...
Ich habe versucht die überflüssigen so herauszufiltern:
Code:
SELECT * FROM beschreibung a,veranstaltungen b WHERE a.Titel <>b.Titel
Das gibt mir aber immer sämtliche Einträge zurück. Ich vermute dass es daran liegt, dass der Titel in der Beschreibungstabelle unique ist in der anderen aber nicht...
Ich hoffe ihr versteht mein Problem und könnt mir auch helfen. Ich weiß, das ist eigentlich nicht weiter schwer, aber scheinbar steh ich auf dem Schlauch.

MfG morb

Geändert von morb (10.06.2009 um 09:08:14 Uhr)
Mit Zitat antworten
  #2  
Alt 10.06.2009, 09:23:23
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Einträge aus 2 Tabellen vergleichen und löschen

Hallo morb,

normalerweise arbeitet man mit Schlüsseln die einen Datensatz eindeutig identifizieren.
So hättest du z.B. Veranstalltung x den schlüssel 111 geben können, und diesen in der beschreibungstabelle mitgespeichert, dann wüsstest du das diese beschreibung zu der veranstaltung gehört.

Wie kommst du jetzt überhaupt an die richtigen beschreibungen? Könntest du den query mal posten?

Welche Datensätze möchtest du denn jetzt genau löschen? Alle Beschreibungen zu denen es kein Titel in der Veranstalltungstabelle gibt?

Code:
SELECT
*
FROM
tblB tb LEFT JOIN tblV tv ON (tb.titel = tv.titel)
WHERE
tv.titel IS NULL
habs zwar kurz in mysql getestet , vergebe aber trotzdem keine garantie ( ;
Mit Zitat antworten
  #3  
Alt 10.06.2009, 09:35:14
morb morb ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 38
Beiträge: 5
AW: Einträge aus 2 Tabellen vergleichen und löschen

Besten Dank erstmal...

Das ist ja das Problem. Ich bekomme die Tabelle und erstelle sie nicht selbst... Sonst hätte ich das definitiv so gemacht, dass jede Veranstaltung ihre eigene ID hätte.

Ums mal deutlicher zu machen ;)
  1. Ich bekomme die Tabelle mit ihren Feldern (da habe ich keinen Einfluss drauf)
  2. Ich lese die einzelnen Titel raus (weil die das einzige eindeutige Kriterium sind)
  3. Ich speichere sie in die Beschreibungstabelle wo dann per Hand Beschreibungen eingefügt werden

Wobei per Hand dabei bedeutet, aus dem Backend eines CMS...
Wenn dann also im Frontend eine Veranstaltung aufgerufen wird, soll die entsprechende Beschreibung dazu abgerufen werden können.

Zitat:
Welche Datensätze möchtest du denn jetzt genau löschen? Alle Beschreibungen zu denen es kein Titel in der Veranstalltungstabelle gibt?
Korrekt ;)

Die Abfrage scheint zu funktionieren... Nur mit dem löschen hab ich noch Probleme...

Habe das noch nicht soo oft gemacht. Hätte es so gedacht, aber das funktioniert nicht. Ein Operand fehlt...

Code:
DELETE FROM tl_ueber WHERE (SELECT * FROM tl_ueber tb LEFT JOIN tl_veranstaltungen tv ON (tb.titel = tv.titel) WHERE tv.titel IS NULL)

Geändert von morb (10.06.2009 um 09:41:05 Uhr)
Mit Zitat antworten
  #4  
Alt 10.06.2009, 09:41:21
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Einträge aus 2 Tabellen vergleichen und löschen

Also ist der Titel doch eindeutig? Ich hatte was davon gelesen das er doppelt vorkommen kann!
Zitat:
dort kommen mehrere Veranstaltungen mit dem gleichen Titel vor
Was bekommst du denn als Ergebnismenge bei meinem Statement? Das selbe wie bei deinem?
Ehrlich gesagt habe ich sonst auch keine Idee, vll. müssen wir / du auf deinen prosql user warten der dir hilft.
Mit Zitat antworten
  #5  
Alt 10.06.2009, 09:44:46
morb morb ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 38
Beiträge: 5
AW: Einträge aus 2 Tabellen vergleichen und löschen

In der Veranstaltungstabelle kommen die Titel mehrfach vor. In der Beschreibungstabelle aber nicht, da jedes Stück ja nur eine Beschreibung hat/braucht.

Das Ergebnis der Abfrage ist jetzt genau das richtige, nur das löschen wehrt sich noch...
Mit Zitat antworten
  #6  
Alt 10.06.2009, 10:00:49
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Einträge aus 2 Tabellen vergleichen und löschen

Mal im ernst, woher sollte ich jetzt wissen was nicht funktioniert, und wie kann ich dir helfen wenn ich nicht genau weiss was nicht funktioniert? Und gleich danach, woher soll ich wissen warum es nicht funktioniert? Du gibst keine Fehlermeldungen mit, kein statement welches du ausprbiert hast. Sag du es mir bitte? Wie könnte ich dir helfen?

Ich hab natürlich schon in meine Glaskugel geschaut unf folgendes gefunden:
Code:
DELETE FROM
tblBeschreibung AS tblB
WHERE
tblB.titel NOT IN (SELECT titel FROM tblVeranstaltungen)
ungetestet
Mit Zitat antworten
  #7  
Alt 10.06.2009, 10:21:37
morb morb ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 38
Beiträge: 5
AW: Einträge aus 2 Tabellen vergleichen und löschen

Entschuldige das war nicht bös gemeint, aber ich hatte den Beitrag ein paar mal geändert, weils erst nicht ging und dann wieder doch. Hatte dann auch Code dabei (sogar mit Angabe des Fehlers). Werde das Bsp. von dir jetzt mal probieren und mich dann ordnungsgemäß zurückmelden.

Geändert von morb (10.06.2009 um 10:22:45 Uhr)
Mit Zitat antworten
  #8  
Alt 10.06.2009, 10:35:17
morb morb ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 38
Beiträge: 5
AW: Einträge aus 2 Tabellen vergleichen und löschen

Also...
Wenn ich anstelle des "DELETE" "SELECT *" nehme, gibt er mir die richtigen Datensätze aus.
Bei Delete bekomme ich allerdings folgenden Fehler:

Code:
Fehler

SQL-Befehl: Dokumentation

DELETE FROM tblBeschreibung AS tblB WHERE tblB.titel NOT IN (
SELECT titel
FROM tblveranstaltungen
)

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE tblB.titel NOT IN (SELECT titel FROM tl_veranstaltungen)' at line 1
Ich hoffe ich habe diesesmal alles benötigte gesagt...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrere DB Einträge mittels Variable löschen ZeroQL PHP Grundlagen 3 25.11.2008 16:56:56
Daten aus mehreren Tabellen löschen? Mit Triggern oder per PHP? Daffy MySQLi/PDO/(MySQL) 1 20.11.2007 20:07:13
2 Tabellen vergleichen Aline MySQLi/PDO/(MySQL) 4 12.09.2006 11:24:06
letzten 5 Einträge aus 5 Tabellen (MySQL 4.0.26) Partheeus MySQLi/PDO/(MySQL) 6 17.01.2006 23:46:30
Tabellen abgleichen, vergleichen u. einträge löschen rallesalle MySQLi/PDO/(MySQL) 1 01.11.2005 12:32:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:52:30 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt