php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.01.2009, 19:47  
omaronhtm
Gast
 
Beiträge: n/a
Standard [Erledigt] Subquery returns more than 1 row

grüsse euch,
Ich habe ein Problem mit einer Aufgabe, ich habe viele Mühe gegeben, es war leider erfolglos, und zwar es geht um den Code (MySQL 5.0) :

__________________________________________________ __________________________________________________ ________________________________
insert into geraetedatenbank.`kms_personal` (`Bearbeiter`,`Kurzzeichen`)
select `Bearbeiter`,`Kurzzeichen` from geveka.`kms-personal`
where (upper((select `Bearbeiter` from geveka.`kms-personal`)) != upper((select `Bearbeiter` from geraetedatenbank.`kms_personal`)))
and (upper((select `Kurzzeichen` from geveka.`kms-personal`)) != upper((select `Kurzzeichen` from geraetedatenbank.`kms_personal`))) order by Bearbeiter
__________________________________________________ __________________________________________________ ________________________________
ich habe zwei Datenbanken mit zwei gleich strukturierte Tabellen (sie haben beide zwei Spalten, und die zwei Spalten sind unique Key), ich will einfach den Inhalt der ersten Tabelle in der zweiten Tabelle speichern indem ich kontrolliere dass es keine Widerholung der zwei Unique keys geben muss,anders formuliert nur die Daten die nicht in der zweiten Tabelle nicht existieren kopieren,... ich bekomme immer den Fehler "Subquery returns more than 1 row", ich weis ja nicht was ich da falsch geschrieben habe, ich bitte euch Hilfe, ich bedanke mich herzlich im Vorraus
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.01.2009, 19:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Fehlt da nicht ein VALUES vor dem select?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2009, 19:52  
omaronhtm
Gast
 
Beiträge: n/a
Standard

da sind die Spaltennamen, woher ich die Daten kopieren möchte, es sind keine Strings, vielen Dank für dein schnelles Antwort, freut mich
  Mit Zitat antworten
Alt 06.01.2009, 19:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ok, hast natürlich Recht.

Aber was sollen die select im upper? Da kannst Du doch einfach die Feldnamen hinschreiben. SO ist das falsch!

Probier mal:
Code:
INSERT INTO geraetedatenbank.`kms_personal` 
            (
            `Bearbeiter`,
            `Kurzzeichen`
            )
  SELECT    `Bearbeiter` , 
            `Kurzzeichen` 
  FROM       geveka.`kms-personal`
  WHERE      (
             UPPER(geveka.`kms-personal`.`Bearbeiter`) <> 
             UPPER(geraetedatenbank.`kms_personal`.`Bearbeiter`)
             )
             AND 
             (
             UPPER(geveka.`kms-personal`.`Kurzzeichen`) <> 
             UPPER(geraetedatenbank.`kms_personal`.`Kurzzeichen`)
             ) 
  ORDER BY   Bearbeiter
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (06.01.2009 um 20:04 Uhr).
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2009, 20:04  
omaronhtm
Gast
 
Beiträge: n/a
Standard

bei der ersten Tabelle sind die Abkürzungen manchmal klein geschrieben, und wenn ich einfach kopiere und da einfüge, da würde ich ein Problem treffen, und zwar die beiden Felder sind vom Type Unique Key, es darf keine Widerholung sein
  Mit Zitat antworten
Alt 06.01.2009, 20:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein, die Select sind falsch. Siehe Beispiel.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2009, 20:11  
omaronhtm
Gast
 
Beiträge: n/a
Standard

ich bekomme den Fehler : Unknown column 'geraetedatenbank.kms_personal.Bearbeiter' in 'where clause'
  Mit Zitat antworten
Alt 06.01.2009, 20:14  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hmm, möglicherweise mußt Du über Variablen gehen. Oder vielleicht führt auch ein NOT IN Statement zum Ziel.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2009, 20:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Anderer Ansatz:

INSERT .. IGNORE
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2009, 20:17  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Code:
INSERT INTO geraetedatenbank.`kms_personal` 
            (
            `Bearbeiter`,
            `Kurzzeichen`
            )
  SELECT    `Bearbeiter` , 
            `Kurzzeichen` 
  FROM       geveka.`kms-personal`
  WHERE      (
             UPPER(geveka.`kms-personal`.`Bearbeiter`) <> 
             UPPER(geraetedatenbank.`kms_personal`.`Bearbeiter`)
             )
             AND 
             (
             UPPER(geveka.`kms-personal`.`Kurzzeichen`) <> 
             UPPER(geraetedatenbank.`kms_personal`.`Kurzzeichen`)
             ) 
  ORDER BY   Bearbeiter
Und das funktioniert? (hab jetzt nix zum testen) Das würde jetzt meine Anschaung zu SQL übern haufen hauen.
So hätte ich das gelöst:

Code:
INSERT INTO geraetedatenbank.`kms_personal` 
            (
            `Bearbeiter`,
            `Kurzzeichen`
            )
  SELECT    geveka_p.`Bearbeiter` , 
            geveka_p.`Kurzzeichen` 
  FROM       
			geveka.`kms-personal` AS geveka_p LEFT JOIN
			geraetedatenbank.`kms_personal` AS gearet_p ON (
				(
				 UPPER(geveka_p.`Bearbeiter`) =
				 UPPER(gearet_p.`Bearbeiter`)
				 )
				 AND 
				 (
				 UPPER(geveka_p.`Kurzzeichen`) =
				 UPPER(gearet_p.`Kurzzeichen`)
				 )
			 )
  WHERE     
		gearet_p.Bearbeiter IS NULL
  ORDER BY   Bearbeiter
*edit* kann wohl doch bei meiner Anschaung bleiben
erc 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
Subquery simsalabim Datenbanken 4 15.04.2008 23:16
bestimmte anzahl an <br> / returns imported_kremser PHP Tipps 2007 7 01.11.2005 14:44
UNION in einem Subquery Datenbanken 0 26.10.2005 13:24
Ausgabe der Auswahlliste PHP Tipps 2005-2 6 21.09.2005 13:43
[Erledigt] Select Statement mit exists subquery Datenbanken 5 09.12.2004 10:24
Subquery nötig? Stümper Datenbanken 7 31.08.2004 11:29
number of open files to more than 150 Datenbanken 0 22.07.2004 11:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
subquery returns more than 1 row, sql subquery returns more than 1 row, mysql subquery returns more than 1 row, \subquery returns more than 1 row\, subquery more than one row, #1242 - subquery returns more than 1 row, subquery returns more than one row, select subquery more than one row, single-row subquery returns more than one row, insert subquery returns more than 1 row, sql: subquery returns more than 1 row, \subquery returns more than 1 row \, subquery cannot return more than one row, subquery with more than one row, 1242 - subquery returns more than 1 row, 1242 subquery returns more than 1 row, insert single-row subquery returns more than one row, mysql \subquery returns more than 1 row\, subselect more than one row, subquery returns more than 1 row sql

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