php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.03.2009, 14:21   #1 (permalink)
Neuer Benutzer
 
Registriert seit: 02.02.2009
Beiträge: 21
voda befindet sich auf einem aufstrebenden Ast
Standard Daten, die nicht in Tabelle 1 aus Tabelle 2 laden

Hallo,

ich möchte - wie der Titel sagt, alle datensätze, die nicht in der tabelle1 stehen aus einer tabelle2 laden. Ich habe schon alles mögliche probiert, aber komm nicht wirklich weiter.

So dacht ich müsste es gehen,... aber es funktioniert leider nicht.

Code:
SELECT DISTINCT kasse_artikel.*
FROM kasse_artikel
LEFT JOIN kasse_inventur_daten ON kasse_inventur_daten.artnr != kasse_artikel.artnr
WHERE kasse_inventur_daten.invid =15
ORDER BY `kasse_artikel`.`id` ASC
Habs auch schon mit LEFT und RIGHT und nur JOIN probiert.. Komm nicht weiter.
Habt ihr eine Idee dazu?

Mfg voda
voda ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.03.2009, 15:10   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Etwa so:
Code:
INSERT INTO
    tabelle_1(
        feld_1,
        feld_2,
        ...
        feld_n
    )
SELECT
    feld_1,
    feld_2,
    ...
    feld_n
FROM
   tabelle_2 t2
WHERE
   t2.id NOT IN(
      SELECT
         t1.id
      FROM
         tabelle_1 t1
      );
   )
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 12.03.2009, 15:34   #3 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zur Sicherheit:
kasse_artikel ist tabelle1 und kasse_inventur_daten tabelle2?
Also übersetzt "ich möchte - wie der Titel sagt, alle datensätze, die nicht in der kasse_artikel stehen aus kasse_inventur_daten laden." ?
David ist offline   Mit Zitat antworten
Alt 12.03.2009, 16:01   #4 (permalink)
Neuer Benutzer
 
Registriert seit: 02.02.2009
Beiträge: 21
voda befindet sich auf einem aufstrebenden Ast
Standard

Danke erstmal.
Aber ich möchte kein INSERT machen. Beide Tabelle existieren schon. Beide haben ein Feld "artnr" gemeinsam. Das soll verglichen werden und ich möchte das alle Datensätze aus der Tabelle "kasse_artikel" angezeigt werden, die eine "artnr" haben welche sich nicht in der Tabelle "kasse_inventur_daten" befindet. Also genau anders herum, als David dachte.
voda ist offline   Mit Zitat antworten
Alt 12.03.2009, 16:08   #5 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von voda Beitrag anzeigen
Also genau anders herum, als David dachte.
Ich habe einfach wahlfrei eine Kombination gewählt, da das nicht aus dem Text hervor ging

Eine mögliche Grundform dafür ist:
Code:
SELECT
  a.artnr
FROM
  kasse_artikel as a
LEFT JOIN
  kasse_inventur_daten as i
ON
  a.artnr=i.artnr
WHERE
  Isnull(i.artnr)
Oder mit Subquery/EXISTS
Code:
SELECT
  artnr
FROM
  kasse_artikel as a
WHERE
  NOT EXISTS (
    SELECT
      *
    FROM
      kasse_inventur_daten as i
    WHERE
      i.artnr=a.artnr
  )
Deine sonstigen Bedingungen kannst Du per AND/OR damit kombinieren.
David ist offline   Mit Zitat antworten
Alt 12.03.2009, 16:17   #6 (permalink)
Neuer Benutzer
 
Registriert seit: 02.02.2009
Beiträge: 21
voda befindet sich auf einem aufstrebenden Ast
Standard

Oh das sieht gut aus. Vielen Dank! kannst du mir bitte noch erklären, was das mit dem
Code:
WHERE
  Isnull(i.artnr)
in deinem ersten Code auf sich hat? Wieso frage ich isnull ab?

Ich habe den zweiten Code verwendet, da ich das eben geschriebene beim ersten nicht so ganz versteh. Danke!!!
voda ist offline   Mit Zitat antworten
Alt 12.03.2009, 16:18   #7 (permalink)
Neuer Benutzer
 
Registriert seit: 02.02.2009
Beiträge: 21
voda befindet sich auf einem aufstrebenden Ast
Standard

Oder anders gefragt wieso geht nicht "<>"?
voda ist offline   Mit Zitat antworten
Alt 12.03.2009, 16:50   #8 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Mit
Code:
SELECT
  a.artnr
FROM
  kasse_artikel as a
LEFT JOIN
  kasse_inventur_daten as i
ON
  a.artnr=i.artnr
erhälst Du alle Datensätze aus kasse_artikel. Wenn MySQL keinen zur ON-Bedingung passenden Datensatz in kasse_inventur_daten findet, werden die Felder im Ergebnis auf NULL gesetzt. Das sind genau die Datensätze, die Du haben willst.
NULL verhält sich an einigen Stellen auf den ersten Blick etwas seltsam. Wenn Du ein Feld explizit gegen NULL vergleichen willst, solltest Du die dafür bereitgestellten Funktionen/Operatoren verwenden. Also IsNull(), is null, <=> usw usw.
David ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten in Tabelle schreiben Funktioniert nicht stheeke Datenbanken 1 13.12.2008 13:54
Daten aus Mysql Tabelle über Arrays in Variabeln schreiben Toby PHP Tipps 2008 8 22.08.2008 10:01
Daten aus SQL Tabelle inklusive Link stonedzytode PHP Tipps 2008 3 11.08.2008 00:27
[Erledigt] Daten aus einer Tabelle mit Form Select weiter geben ch4in PHP Tipps 2008 12 06.06.2008 21:42
Daten über Formular eingeben und in Tabelle speichern. WIE? PHP Tipps 2006 20 10.02.2006 16:04
[Erledigt] Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
nur Seitenteil mit geänderten Daten neu laden?? HTML, Usability und Barrierefreiheit 5 01.11.2005 09:10
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
Bei neu laden werden Daten mehrmals in die DB gschrieben CSS PHP Tipps 2005 5 09.04.2005 17:32
[Erledigt] Nur bestimmte daten aus einer tabelle auslesen. Datenbanken 15 28.02.2005 12:49
Tabelle nicht erst komplett laden vor der Anzeige. Möglich? HTML, Usability und Barrierefreiheit 4 09.02.2005 21:01
[Erledigt] Problem beim Eintragen neuer Daten in die Tabelle PHP Tipps 2004-2 10 28.12.2004 13:16
per link ganze seite in tabelle laden ? PHP Tipps 2004-2 3 18.11.2004 22:33
Mehrere Daten in Tabelle ein/auslesen PHP Tipps 2004 2 03.09.2004 09:03
[Erledigt] HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
alle datensätze die nicht in tabelle, datensatz nicht in tabelle, mysql daten aus tabelle holen wo id nicht in tabell2 ist, sql 2005 join daten von tabelle 1 die nicht in tabelle 2, zeige alle datensätze die nicht in der tabelle enthalten sind, sql welche datensätze sind nicht enthalten, mysql finde alle datensaetze die nicht, alles was nicht in tabelle 2 ist, mysql daten tabelle 1 und nicht tabelle 2, mysql datensätze aus tabelle 1 die nicht in tabelle 2 sind, join daten nicht in tabelle, neue einträge von tabelle1 auch in tabelle2 übernehmen, sql sätze die in einer tabelle nicht enthalten sind, select datensätze welche nicht in tabelle, sql daten zeigen die in tabelle1 aber nicht in tabelle2, sql alle datensätze finden die nichts gemeinsam haben, text aus tabelle1 in tabelle2, alle datensätze anzeigen die nicht in einer tabelle sind, sql datensätze die nicht in der 1. tabelle enthalten sind, join \alle datensätze die nicht\

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum