2017-06-18 2 views
0

Ich brauche einige Werte aus einer Tabelle eingefügt werden soll (nicht AKTUALISIEREN) an andereWie füge ich Werte aus anderen Tabellen ein?

Hier geht wie ich:

INSERT INTO `users`(`id`) VALUES(('SELECT `id` FROM `clients` WHERE `phone_number`="+115522225500")) 

aber das zeigt einen Fehler

wie soll ich korrigieren

Prost!

+0

Genau welcher Fehler zeigt es? Welche Spalten haben "Benutzer" (und warum nur eine ID einfügen)? Und die Syntax, die Sie verwenden, enthält viele zusätzliche Anführungszeichen. –

Antwort

0

Nur insert . . . select verwenden:

INSERT INTO users(id) 
    SELECT id 
    FROM clients 
    WHERE phone_number = '115522225500'; 

Beachten Sie, dass Telefonnummern normalerweise Strings sein würde und so sollte der Wert um es einfache Anführungszeichen haben.

1

Wie Elliott Frisch gesagt hat, müssen Sie die Fehlermeldung teilen. (Nur dann kann man genau wissen, wie Sie helfen) Aber im Grunde denke ich, Ihre Abfrage kann eine oder alle dieser möglichen Fehler werden mit:

  1. Sie haben unnötige einfache Anführungszeichen in der Abfrage. Entfernen Sie alle einfachen Anführungszeichen und ersetzen Sie die doppelte Anführungszeichen um die Telefonnummer mit einfachen Anführungszeichen
  2. Der Rückgabewert dieses Teils (nach natürlich darauf achten, dass von (1) oben)

('SELECT id vON clients WHERE phone_number = „+ 115522225500“)

kann mehr als ein Wert sein, wenn durch jede Möglichkeit der gleiche Telefonnummer in mehr als ein Datensatz erscheint, wird dies unter der Annahme, dass es keine eindeutige Spalte ist. Sie könnten in Betracht ziehen, (SELECT TOP 1 ID from clients....

zu verwenden
  1. Die Auswahlabfrage gibt einen Nullwert zurück, aber die Spalten-ID in Benutzer lässt keine Nullwerte zu.
Verwandte Themen