php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.09.2004, 12:14  
Gast
 
Beiträge: n/a
Standard [Erledigt] bin nicht bsonders gut in php und sql queries left join prob

habe folgende abfrage gemacht.

$mssql_ergebnis = mssql_query("select Kalk_Gruppe from l.bezeichnung as lieferer, a.kalk_gruppe
from lieferanten l, artikel a left join variantengruppe v on v.id=a.id_variantengruppe
where
(a.kalk_gruppe is not NULL) and
(l.id=$auswahl_lieferant) and

(v.id_lief1=l.id) or (v.id_lief2=l.id) or (v.id_lief3=l.id)
or
(a.id_lief1=l.id) or (a.id_lief2=l.id) or (a.id_lief3=l.id)

group by a.kalk_gruppe,l.bezeichnung
order by l.bezeichnung")

or die ("Fehlerhafte MSSQL Abfrage");

kann da zufällig einer erkennen was der fehler ist? Falls mehr Infos notwendig bitte melden.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.09.2004, 14:06  
Gast
 
Beiträge: n/a
Standard

Hallo falko
Zitat:
kann da zufällig einer erkennen was der fehler ist?
Der ist gut.
Es müsste viel mehr heißen: Was davon habe ich richtig gemacht? --Nicht viel. :wink:

Ich versuchdas mal zu entwirren. Eventuelle Korrekturen nimmst du bitte vor.

PHP-Code:
<?php
    $spl 
"SELECT
                    a.Spaltenname1,
                    b.Spaltenname2,
                    d.Spaltenname3,
                    a.Spaltenname4,
                    c.Spaltenname5,
                    e.Spaltenname6
                FROM
                    Tabelle1 a, 
                    Tabelle2 b,
                    left join Tabelle3 c ON c.Spalte = b.Spalte,
                    left join Tabelle4 d ON d.Spalte = b.Spalte,
                    left join Tabelle5 e ON e.Spalte = b.Spalte
                 WHERE
                     a.Spalte >= b.Spalte
                         OR
                     b.Spalte = ''
                 GROUP BY
                      a.Spalte
                 ORDER BY
                      b.Spalte"
;

    
$mssql_ergebnis mssql_query($sql);
?>
Wie SELECT richtig aufgebaut werden, kannst du hier nachlesen.

http://dev.mysql.com/doc/mysql/de/SELECT.html
  Mit Zitat antworten
Alt 28.09.2004, 15:32  
Gast
 
Beiträge: n/a
Standard

Oh man danke, aber ich habs irgendwie nicht geschnallt

Ich weiss auch gar nicht ob left join die richtige sache ist. Ich erklär mal eben was ich machen möchte.



Ich habe die Lieferanten ID in der variable $auswahl_lieferant. Mein Ziel ist es alle Kalk_gruppen zu bekommen aus der tabelle Artikel die zu $auswahl_lieferant passen. Da gibt es einmal 3 lief ids direkt im artikel, und 3 in der variantengruppe tabelle. Also die direkt aus dem artikel bekomm ich ja selbst mit meinen anfänger fähigkeiten, aber den umweg über die variantengruppen tabelle schaff ich nicht. Bekomms nicht hin die kalk_gruppe aus artikel zu bekommen bei denen der lieferer in der varianten gruppe steht.
  Mit Zitat antworten
Alt 28.09.2004, 15:54  
Gast
 
Beiträge: n/a
Standard

Hmmm, entweder schnall ich den Aufbau der Tabellen nicht, oder du hast da den Wurm drin.

Wieso gibts denn 3x Lief_id in Artikel und Variantengruppe?

Ich denke mir das jetzt so, dass ein Artikel in der Regel von einem Lieferanten geliefert wird.
Aber ich bin jetzt auch nicht in der Lagerführung so involviert, dass ich da wirklich Ahnung hätte.

Ich versuchs mal.

PHP-Code:
<?php
    $sql 
"SELECT
                    a.Kalk_gruppe
               FROM
                     Artikel a
                     LEFT JOIN Variantengruppe b ON b.ID = a.Variantengruppe_id
               WHERE
                      (b.Lief_id1 = '"
.$auswahl_lieferant."'
                            OR
                       b.Lief_id2 = '"
.$auswahl_lieferant."'
                            OR
                       b..Lief_id3 = '"
.$auswahl_lieferant."')";
?>
Versuch das doch mal bitte.

Fehler nicht ausgeschlossen, also nicht nur stumpf kopieren, sondern auch mal durchlesen. :wink:
  Mit Zitat antworten
Alt 28.09.2004, 16:37  
Gast
 
Beiträge: n/a
Standard

In den Varianten Gruppen können mehrere Artikel enthalten sein, deshalb mehrere Lieferer. Die Lieferer in der Artikeltabelle sind noch da drin als es die Variantengruppe nicht gab. Es sind noch nicht alle Artikel in Variantengruppen erfasst also noch die alten teile da in der Artikeltabelle. Ganz komisch hier.

Dein Code funktioniert leider nicht hab ihn auch brav durchgelesen und einen . entfernt und den variablennamen angepasst, aber irgendwie gehts trotzdem nicht.

Ausserdem kapier ich nicht ganz was diese a und b sache auf sich hat
  Mit Zitat antworten
Alt 28.09.2004, 16:44  
Gast
 
Beiträge: n/a
Standard

Das mit a und b sind nichts weiter als Bezeicher...Pseudos.
Also soviel wie: Nimm die daten von blablablablablablabla und nun nenne sie ganz kurz a weil ich nicht immer boch habe blablablablablablabla zu schreiben.

Welchen . hast du denn weg gemacht?

a. und b. sind die Verweise auf die Tabellen. Deswegen auch Artikel a und Variantengruppe b. Ausgeschrieben müsste es heißen: Variantengruppe AS b also "als".

Hier ein Link, der dich interessieren könnte.

http://ffm.junetz.de/members/reeg/DS...00000000000000

Poste doch mal die Query die du jetzt verwendet hast und die Fehlermeldung, die ausgegeben wurde.
  Mit Zitat antworten
Alt 28.09.2004, 16:47  
Gast
 
Beiträge: n/a
Standard

WOW heftig jetzt gehts. Sorry für mein überhastetes klagen. :P

Du bist nicht der Prinz du bist der King!

Vielen dank, ich werde dich heute abend in meine Gebete einschliessen!!!

Gruss aus Stade
  Mit Zitat antworten
Alt 28.09.2004, 16:50  
Gast
 
Beiträge: n/a
Standard

Und wieder eine gute Tat.
Das ist schon die 2. heute. Mal sehen, wie viele ich heute schaffe.

Schön das es klappt.

Schau dir den Link dennoch an. Der nimmt dir viele Sorgen ab.
  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] LEFT JOIN auf mehrere Spalten nystagmussen Datenbanken 3 22.07.2008 08:05
WHERE-Clause im Left Join cycap Datenbanken 2 06.11.2007 11:06
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
LEFT OUTER JOIN auf Nicht-Tabelle inu Datenbanken 15 29.03.2007 20:21
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
[gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!? stefanjann Datenbanken 3 24.10.2006 11:32
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
Left outer join, timestamps php-newbie83 Datenbanken 29 27.04.2006 09:29
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] LEFT JOIN Query Bildung Datenbanken 6 04.11.2005 15:24
[Erledigt] LEFT JOIN funtkioniert nicht richtig Datenbanken 3 19.10.2005 17:38
[Erledigt] LEFT JOIN Problem Datenbanken 11 21.03.2005 16:36
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
den letzte(grösten) eintrag aus LEFT JOIN Datenbanken 2 24.07.2004 18:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php select * from left join, sql left join, php sql left join, sql join varianten, sql join alle die nicht drin sind, aufbau sql query mit left join

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:31 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.