php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.03.2007, 19:02  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard LEFT OUTER JOIN auf Nicht-Tabelle

Hallo Leute,

ich benötige ein LEFT OUTER JOIN wie folgt:


...
Code:
LEFT OUTER JOIN ( SELECT nr, sum(anzahl)
                  FROM tabelle2
                  GROUP BY nr
                ) AS liste
             ON tabelle1.nr = liste.nr
...

An dieser Umsetzung scheitert es bei mir. MySQL bringt mir hier immer den Fehler 1267.

Wie kann ich trotzdem dieses Problem lösen?

Vielen Dank[/code]
inu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.03.2007, 19:07  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Da fehlt das SELECT vor der eigentlichen JOIN ^^

Was genau willst du eigentlich und was ist eine "Nicht-Tabelle"?
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:13  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Hallo,

als Nicht-Tabelle habe ich das Ergebnis einer SELECT-Anweisung bezeichnet.

Die Tabelle2 enthält Warenzugänge, dass heisst, die laufenden Zugänge eines Artikels (nr) werden mit der Stückzahl (anzahl) und Datum erfasst.


Code:
SELECT shopdb.label                 AS "Label",
       shopdb.name                  AS "Name",
       shopdb.nr                    AS "ID",
       verkaufsliste.rechnungen     AS "Anzahl der Rechnungen",
       verkaufsliste.anzahlverkauft AS "verkaufte Stück"
 
FROM ( SELECT article_id, 
              count(*)    AS rechnungen,
              sum(number) AS anzahlverkauft
       FROM order_article
       WHERE order_id IN ( SELECT order_id
                           FROM   orders
                           WHERE  o_rechnung > 0
                         ) AND
             lcase(left(article_id,1)) = 'l' 
       GROUP BY article_id
     ) AS verkaufsliste

RIGHT OUTER JOIN shopdb 
              ON shopdb.nr = verkaufsliste.article_id
LEFT OUTER JOIN ( SELECT nr, sum(anzahl)
                  FROM tabelle2
                  GROUP BY nr
                ) AS liste
             ON shopdb.nr = liste.nr 
WHERE lcase(left(shopdb.nr,1)) = 'l'

ORDER BY shopdb.nr
inu ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:20  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

Zitat:
Zitat von inu
MySQL bringt mir hier immer den Fehler 1267.
Genau, und dann sagt es Dir auch noch, welche collations Du nicht miteinander nutzen kannst in Deiner Abfrage.
Schnulli ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:23  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Naja, ohne diesen LEFT-OUTER-JOIN läuft es ja. Also muss es ja an diesem JOIN liegen!
inu ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:26  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

2 min Suche mit Google ergab

Zitat:
Zitat von http://dev.mysql.com/doc/refman/4.1/en/charset-collation-charset.html
However, in versions of MySQL 4.1 before 4.1.8, the statement fails:
Code:
mysql> SELECT SUBSTRING_INDEX(USER(),'@',1);
ERROR 1267 (HY000): Illegal mix of collations
(utf8_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE)
for operation 'substr_index'
This happens because the automatic character set conversion of '@' does not occur and the string operands have different character sets (and thus different collations):
MySQL Manual

Es scheint also, als hättest du auf den verschiedenen Tabellen verschiedene Zeichensätze, die sich nicht so einfach gegenseitig konvertieren lassen. Schau dir mal den Link an, da dürftest du Lösungen finden.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:30  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

Und diese ERROR 1267 (HY000): Illegal mix of collations ... Meldung hast Du nicht bekommen, inu? Nur die Zahl?
Schnulli ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:34  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Komisch, ich hab den Fehler "nur mit der Zahl" trotzdem gefunden
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:35  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

Ich ja auch (oder ich rate bei jedem mysql Fehler, dass es etwas mit collations zu tun hat; kann natürlicvh auch sein), aber darum geht es nicht.
Schnulli ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:45  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Ich erhalte nur diesen Fehler hier:

MySQL meldet:
#1267 -
inu 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
Left Join.. mit ON 2 Spalten holen? kleenerandi PHP Tipps 2008 0 31.03.2008 22:48
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
[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
2 Tabellen: Left outer join??? Datenbanken 2 14.09.2005 13:11
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
left outer join Problem Datenbanken 5 21.01.2005 17:25
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
left outer join, select left outer join, left outer join sum, left outer join mysql, illegale left outer join, sql outer join kunden ohne rechnung, sql fehler #1267 hilfe, left outer join mit select, outer join select group, sql join in tabelle nicht vorhanden, select für mysql datenbank mit outer, right outer join sum, left outer join with select, sql left outer join group by sum, illegaler left outer join, sum left outer join, left outer join select(, left outer join (select, left outer jopin on select, \#1267 - illegal mix of collations (utf8_general_ci,coercible) and (latin1_swedish_ci,numeric) for operation \'=\'\

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