php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-12-2006, 20:11
KleinesOnlein29
 Newbie
Links : Onlinestatus : KleinesOnlein29 ist offline
Registriert seit: Jun 2006
Beiträge: 45
KleinesOnlein29 ist zur Zeit noch ein unbeschriebenes Blatt
Standard select mit subquery: ...where id1 != id2 ...

Hallo!

Ich brauche hilfe bei einer Query.
Ich habe eine Tabelle mit den Spalten id, alert und andere.
Jetzt habe ich eine query, die mir genau 300 datensätze aus dieser Tabelle rausfischt, die von dem ganzen NICHT betroffen sind. Ich kann diese 300 Datensätze auch nur durch diese Query rausfinden. Wenn unter 300 Datensätzen in der Tabelle sind, soll sich das ganze erledigt haben (rückgabe ""). Wenn über 300 Datensätze vorhanden sind, soll von diesen anderen betroffenen Datensätzen (die nicht innerhalb der 300 erfasst sind) diejenigen ausgewählt werden, bei denen bei alert der Wert "1" steht (und nicht "0" oder ""). Ich hoffe das war einigermassen verständlich..
Versucht habe ich das so:
PHP-Code:
SELECT id1id2
FROM
    
(SELECT id as id1
     FROM table
     
// WHERE blabla, das hier ist ebend die query, die mir die 300 speziellen datensätze raussucht
     
LIMIT 300)
     as 
temp1,
    (
SELECT id as id2alert as alert1
     FROM table
)
     as 
temp2
WHERE id1 
!= id2 and alert1 '1' // und das klappt nicht, weil dann der join misslingt 
Die Subquery 2 gibt mir ja sämtliche id´s von der tabelle zurück. Von diesen müssten dann die "gelöscht" werden, die mit der subquery 1 erfasst wurden. Und von den dann erhaltenen die auswählen, die bei alert eine 1 stehen haben.

Mfg,
Stefan
Mit Zitat antworten
  #2 (permalink)  
Alt 06-12-2006, 09:22
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

probier mal
WHERE temp1.id1 != temp2.id2 and temp2.alert1 = '1'

@admins & mods
Könnte ich evtl. wieder einen ganz normalen Userstatus bekommen? Bin langsam zu alt für den jetzigen.
__________________
it's not a bug,
it's a feature!

Geändert von XGremliN (06-12-2006 um 09:31 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 07-12-2006, 20:18
KleinesOnlein29
 Newbie
Links : Onlinestatus : KleinesOnlein29 ist offline
Registriert seit: Jun 2006
Beiträge: 45
KleinesOnlein29 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@ XGremliN
Das ist leider das gleiche in grün, der join schlägt dann genauso fehl, aber danke für deine Antwort! )

@ all
Hat niemand eine andere idee, oder mache ich irgendwas falsch? Fehlt irgend eine info?
Mit Zitat antworten
  #4 (permalink)  
Alt 07-12-2006, 20:29
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: select mit subquery: ...where id1 != id2 ...

Versuch das ganze doch mal in einer sinnvollen Reihenfolge ...
Zitat:
Die Subquery 2 gibt mir ja sämtliche id´s von der tabelle zurück. Von diesen müssten dann die "gelöscht" werden, die mit der subquery 1 erfasst wurden.
Also SELECT ALLE AUSSER DIE, DIE SUBQUERY LIEFERT.
NOT IN dürfte ein gutes Stichwort sein.
Zitat:
Und von den dann erhaltenen die auswählen, die bei alert eine 1 stehen haben.
Nee, nicht anschließend welche rauswerfen, sondern gleich von vornherein nur die richtigen selektieren.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 15-12-2006, 20:18
KleinesOnlein29
 Newbie
Links : Onlinestatus : KleinesOnlein29 ist offline
Registriert seit: Jun 2006
Beiträge: 45
KleinesOnlein29 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ich bin jetzt schon stundenlang zugange, komme aber nicht auf das ergebnis.

Nach deinem Tip habe ich nun folgendes Versucht:
PHP-Code:
SELECT id
FROM tabelle
WHERE id NOT IN 
          
(SELECT id
           FROM tabelle
           WHERE 
// blabla, das hier ist ebend die query, die mir die 300 speziellen datensätze raussucht
           
LIMIT 300)
      AND 
alert '1' 
Das würde ja rein theoretisch funktionieren, wenn da nicht folgende Fehlermeldung wäre:
This version of MySQL does not yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Die Fehlermeldung ist eigendlich eindeutig. Aber wie soll ich das sonst machen? Ohne das Limit komme ich nicht aus!
Hat jemand eine Idee? Oder habe ich da was falsch verstanden?

Mfg,
Stefan
Mit Zitat antworten
  #6 (permalink)  
Alt 19-12-2006, 16:47
KleinesOnlein29
 Newbie
Links : Onlinestatus : KleinesOnlein29 ist offline
Registriert seit: Jun 2006
Beiträge: 45
KleinesOnlein29 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hat keiner eine Idee?
Mit Zitat antworten
  #7 (permalink)  
Alt 20-12-2006, 00:45
tonga
 Newbie
Links : Onlinestatus : tonga ist offline
Registriert seit: Dec 2006
Beiträge: 12
tonga ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wüsste nur was mit 2 Queries ...
PHP-Code:
$array "Deine300Saetze";
$query "SELECT id
FROM tabelle
WHERE id NOT IN (" 
implode("," $array) .")"
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:51 Uhr.