php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.12.2004, 00:15  
Gast
 
Beiträge: n/a
Standard [Erledigt] Select Statement mit exists subquery

Hallo zusammen,

habe ein klitzekleines Problem mit einem Select Statement. Original sieht es so aus:
PHP-Code:
SELECT p.products_imagepd.products_namep.products_idp.manufacturers_idp.products_pricep.products_tax_class_id
IF (
s.statuss.specials_new_products_priceNULL 
) AS specials_new_products_price
IF (
s.statuss.specials_new_products_pricep.products_price
) AS final_price
FROM products p
products_description pdmanufacturers m
LEFT JOIN specials s ON p
.products_id s.products_id
WHERE p
.products_status '1' AND pd.products_id p.products_id AND pd.language_id '2' AND p.manufacturers_id m.manufacturers_id AND m.manufacturers_id '58' AND p.products_slave_visible =1 LIMIT 0 30 
So jetzt, muß es aber erweitert werden um nur noch Elemente zu selektieren die nicht mit Produkt ID (p.products_id) in der Tabelle products_to_master in der Spalte slave_id auftauchen.

Ich habe es versucht zu erweitern um ein "and not p2m.slave_id=p.products_id" (habe bei "From" natürlich die Tabelle mit dem Alias p2m angegeben), das hat leider nicht geklappt. Da bekomme ich keine Treffer, es sollten aber ein paar schon sein. Was mach ich falsch? Vielleicht sowas wie ein exists in ner Subquery? Hat bei mir aber bisher nicht hingehauen. Vielleicht count in der subquery nehmen und checken ob es größer null ist? Da habe ich aber keine Ahnung wie das gehen soll... Kann mir da jemand von Euch helfen?

Vielen Dank schon mal!

Ciao,

Timo
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.12.2004, 01:02  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
die nicht mit Produkt ID (p.products_id) in der Tabelle products_to_master in der Spalte slave_id auftauchen.
LEFT JOIN
IS NULL

formatier doch mal die query, man erkennt doch garnix.
__________________
derHund ist offline   Mit Zitat antworten
Alt 03.12.2004, 01:24  
Gast
 
Beiträge: n/a
Standard

Hi derHund,

Ich habs jetzt mal ein bißchen umformatiert, denk so is es besser. Sorry, kenn mich nicht so besonders mit der Forensoftware aus...

Was hast Du mit LEFT JOIN und IS NULL gemeint? Wie soll ich es denn einbauen in die Query?

Vielen Dank und Viele Grüße,

Timo
  Mit Zitat antworten
Alt 03.12.2004, 11:19  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Subquerys wären natürlich einfacher, geht aber erst ab mysql V.4.1 oder so. Deshalb derHund 's Vorschlag. Das könnte dann etwa so aussehen (von der Idee her, sind sicher noch Fehler drin):
PHP-Code:
$sql "SELECT p.products_image, pd.products_name, p.products_id, p.manufacturers_id, 
               p.products_price, p.products_tax_class_id, pm.slave_id
               IF (
                   s.status, s.specials_new_products_price, NULL
               ) AS specials_new_products_price,
               IF (
                   s.status, s.specials_new_products_price, p.products_price
               ) AS final_price
        FROM products p
        LEFT JOIN specials s ON p.products_id = s.products_id
        LEFT JOIN products_to_master pm ON p.products_id = pm.slave_id
        INNER JOIN products_description pd ON p.products_id = pd.products_id
        INNER JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id
        WHERE p.products_status = '1' 
          AND pd.language_id = '2' 
          AND m.manufacturers_id = '58' 
          AND p.products_slave_visible = 1 
          AND pm.slave_id IS NULL
        LIMIT 0 , 30"

__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 03.12.2004, 12:17  
Gast
 
Beiträge: n/a
Standard

Hmmh, ich habe MySQL Version 4.0.12 am laufen... Ok, ich werds mal probieren. Bin leider jetzt unterwegs und komme erst am Montag dazu es zu testen. Ich meld mich aber nochmal! Vielen Dank bis jetzt mal!

Ciao,

Timo
  Mit Zitat antworten
Alt 09.12.2004, 10:24  
Gast
 
Beiträge: n/a
Standard

Supie! Hat geklappt, Danke!

Ciao,

Timo
  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
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
Subquery simsalabim Datenbanken 4 15.04.2008 23:16
SELECT AS geht bei AVG net cyberholic Datenbanken 0 04.05.2006 09:43
EXISTS Abfragre tut unter Mysql 5.0 aber nicht unter 4.x snuggl3s Datenbanken 6 26.04.2006 12:21
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
UNION in einem Subquery Datenbanken 0 26.10.2005 13:24
[Erledigt] Hilfe f. SQL Statement Datenbanken 7 25.10.2005 14:18
[Erledigt] Select Statement - Order by Problem mit Datentypen Datenbanken 6 03.06.2005 16:02
[Erledigt] frage zu select statement Datenbanken 4 21.12.2004 10:29
select statement mit array als argument PHP Tipps 2004 2 29.10.2004 11:17
[Erledigt] Hilfe SQL Statement SELECT Datenbanken 3 30.09.2004 00:17
select into statement Datenbanken 11 15.09.2004 11:15
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
selektierter wert in select box anzeigen PHP Tipps 2004 6 30.08.2004 13:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select if exists, mysql select if exists, select exists, sql select exists, select where exists, subquery sql mehrere spalten, select if exists mysql, if exists select, select exists sql, sql subselect mehrere spalten, sql subquery exists, mysql if exists select, mysql if mit subquery, mysql select exists, select subquery, select statement, select if exist, exists in select, sql exists, sql subquery mehrere spalten

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:35 Uhr.




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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.