AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL ADS und ungleich
Thema durchsuchen
Ansicht
Themen-Optionen

SQL ADS und ungleich

Ein Thema von Grolle · begonnen am 2. Nov 2008 · letzter Beitrag vom 3. Nov 2008
Antwort Antwort
Seite 2 von 3     12 3      
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#11

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 16:49
Hi,

wenn ich FULL JOIN benutze werden die Datensätze auch nicht ausgegeben.
Die CONTACT_ID's sind auch ok.

Viele Grüße ...

  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 16:54
Versuch mal
SQL-Code:
SELECT * from ( SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID)
 WHERE not PROJECT_ID=4;
Markus Kinzler
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#13

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 16:59
Hi,

funktioniert auch nicht ..

Viele Grüße ...

// Ich glaube er hat ein Problem mit leeren Werten?!

  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 17:08
Hi,

kannst Du mal ein paar Datensätze als Anhang bereitstellen?
Ich arbeite nun schon seit Jahren mit ADS, aber in Puncto SQL ist das immer noch nicht so richtig das Wahre


Ich erinner mich, dass ich das gleiche Problem auch schon hatte, kann aber im Moment nicht mehr sagen, wie ich es umschifft habe.


Michael



edit:

Diese dämlichen Datensätze mit Null-Werten werden immer weggelassen, da musst Du mit IFNULL(feld, ersatz) arbeiten. Siehe HILFEEEE
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#15

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 17:11
Hi,

funzt jetzt. Ich habe nicht bedacht/beachtet/gewußt, dass ich die noch nicht ausgefüllten Felder (NULL)
extra mit abfragen muss.

Vielen Dank und viele Grüße ....

  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 17:31
Zitat von alzaimar:
Und wenn Du nix siehst, ist ADS für den A****.
q.e.d. Was ist das bloß für ein Schrottprodukt?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#17

Re: SQL ADS und ungleich

  Alt 2. Nov 2008, 17:46
Hi,

jetzt habe ich eine Sache noch nicht bedacht. Kontakte die die PROJECT_ID 4 haben, können auch weitere
PROJECT_ID's haben. Diese werden aber mit der Query auch ausgegeben (sollen Sie aber nicht).
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID<>4) or (PROJECTS_TO_CONTACTS.PROJECT_ID is null))
Wie löse ich das denn?

  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 08:40
Zitat von alzaimar:
Zitat von alzaimar:
Und wenn Du nix siehst, ist ADS für den A****.
q.e.d. Was ist das bloß für ein Schrottprodukt?
Eines, das sich genau in diesem Punkt an den SQL ANSI Standard hält!
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 08:42
Zitat von Grolle:
Hi,

jetzt habe ich eine Sache noch nicht bedacht. Kontakte die die PROJECT_ID 4 haben, können auch weitere
PROJECT_ID's haben. Diese werden aber mit der Query auch ausgegeben (sollen Sie aber nicht).
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID<>4) or (PROJECTS_TO_CONTACTS.PROJECT_ID is null))
Wie löse ich das denn?
Poste bitte mal die (Minimal-) Tabellenstruktur sowie ein paar Datensätze zusammen mit dem erwarteten Ergebnis.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#20

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 10:56
Hallo,

CONTACTS

id | name | first_name
--------------------------
1 | Muster | Stefan
2 | Test | Andrea
3 | Beispiel | Carsten
4 | Exemplar | Heidi

PROJECTS_TO_CONTACTS

id | contact_id | project_id
----------------------------
1 | 2 | 4
2 | 1 | 7
3 | 3 | 4
4 | 2 | 7
5 | 4 | 4

dann gibts noch eine PROJECTS-Tabelle, hier aber nicht relevant.

Mit der ersten Abfrage hole ich alle CONTACTS, die z. B. dem PROJECT 4 zugeordnet sind:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE PROJECTS_TO_CONTACTS.PROJECT_ID=4
Jetzt möchte ich alle CONTACTS, die nicht dem PROJECT 4 zugeordnet sind, oder 0 sind und auch nicht in dem
Ergebnis der ersten Abfrage auftauchen (das passiert in den obigen Tabellen z. B. mit CONTACT_ID 2. Dieser
ist mehreren Projekten zugeordnet). Bisher sieht die Abfrage da so aus:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID<>4) OR (PROJECTS_TO_CONTACTS.PROJECT_ID IS NULL))
Ich hoffe das war einigermaßen verständlich

Viele Grüße ...

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz