AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Insert mit Select

Ein Thema von ibp · begonnen am 6. Jul 2011 · letzter Beitrag vom 7. Jul 2011
Antwort Antwort
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#1

SQL Insert mit Select

  Alt 6. Jul 2011, 13:39
Datenbank: Interbase • Version: 6.5 • Zugriff über: ibexpert
Hi,

warum schlägt nachfolgendes fehl, er mag den select in den Values nicht?

Meldung: Invalid token. (Select)

Code:
insert into tabelle
(fqld1,feld2,feld3)
values
(select xxx from tabellexxx where yyy=aaa, 'ksdhf', 34343)
Welche Möglichkeit gibt es noch?

Danke schon mal...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 13:40
Lass das "Values" einfach weg.
SQL-Code:
INSERT INTO
  Tabelle(Feld1, Feld2, Feld3)
SELECT
  Feld1, Feld2, Feld3
FROM
  Andere_Tabelle
WHERE
  Bedingungen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#3

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 13:51
@DeddyH
fast, nur das aus dem select nur 1 Feld kommt.

Habe es nun so gelöst, indem ich in das select die anderen Werte ('ksdhf', 34343) injizieren....

Code:
insert into tabelle
(fqld1,feld2,feld3)
select xxx, 'ksdhf', 34343 from tabellexxx where yyy=aaa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 14:01
Oh sry, das hatte ich wohl nicht richtig gelesen. Eine andere Möglichkeit wäre IIRC gewesen:
SQL-Code:
INSERT INTO
  Tabelle(feld1,feld2,feld3)
VALUES
  ((SELECT xxx FROM Tabellexxx WHERE yyy=aaa), 'ksdhf', 34343)
Also, das innere Statement zusätzlich zu klammern.

[edit] Allerdings gibt es einen Unterschied zwischen diesen beiden Varianten: wenn das SELECT mehrere Datensätze zurückgibt, legt Deine Variante auch entsprechend viele Datensätze an, während diese hier einen Fehler wirft. Was nun besser geeignet ist, hängt also vom konkreten Fall ab. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 6. Jul 2011 um 14:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#5

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 14:29
Also, das innere Statement zusätzlich zu klammern.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 15:31
Wenn man nur einen Wert in die Tabelle schreiben will, muss man dann nicht einfach auch nur ein Feld angeben?

Insert Into Tabelle1(Feld1)
Select EinFeld From Tabelle2
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 15:34
Sicher, sonst gibt das böse Fehlermeldungen. Der TE wollte aber 3 Felder befüllen, von denen wohl 2 Konstanten sind.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 15:55
Ahrg Ich hab das in dem ersten Post nicht gerafft, dass das Absicht war mit den Konstanten. Ich dachte das wär der Workarround.
Ralph
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: SQL Insert mit Select

  Alt 6. Jul 2011, 22:01
SQL-Code:
INSERT INTO tabelle (fqld1, feld2, feld3)
SELECT xxx, 'ksdhf', 34343
FROM tabellexxx
WHERE yyy = aaa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: SQL Insert mit Select

  Alt 7. Jul 2011, 07:06
So steht es ja auch in #3.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz