Mysql
 sql >> Baza danych >  >> RDS >> Mysql

czy możliwe jest wstawianie w oparciu o select na jednej z kolumn w MySQL?

Wypróbuj INSERT...SELECT oświadczenie

INSERT INTO student_fees(id, name, fees) 
SELECT ... -- put here the SELECT STATEMENT with condition

jeśli Twoja kolumna ID jest auto incremented , nie musisz określać 1 w przeciwnym razie spowoduje to błąd.

INSERT INTO student_fees(name, fees) 
SELECT `name`, '200$' 
FROM students         -- this will select all students on the table
                      -- and add $200 on thier fees.

Inną kwestią jest, jeśli chcesz wstawić tylko jedną kolumnę od student tabeli, musisz określić warunek, aby nie otrzymać błędu ograniczenia (zakładając, że identyfikator kolumny jest kluczem podstawowym )

INSERT INTO student_fees(name, fees) 
SELECT `name`, '200$' 
FROM   students
WHERE  columnName = 'blahBlah'

AKTUALIZACJA 1

Widząc Twój komentarz, masz to zapytanie

INSERT INTO coupon_allotment (page_id, offer_id, coupon_code, user_id) 
SELECT page_id, 4, 'ABC'        -- number of columns mismatch, right?
FROM pages_discounts_association 
WHERE discount_id = 4

musisz usunąć user_id kolumna powyżej LUB musisz dodać ID w wyciągu select, aby dopasować liczbę kolumn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można połączyć się z serwerem MySQL na MySQLCC ERROR 1043 Bad Handshake

  2. Podziel plik mysqldump z wieloma bazami danych według bazy danych

  3. Kod PHP do przekierowania, jeśli pole mysql jest kompletne

  4. błąd wamp / php Błąd krytyczny:klasa 'mysqli_connect' nie została znaleziona w C:\wamp\www\finalproject\Connections\Main_DB.php w wierszu 9

  5. Jak działają dwuczęściowe interwały ilościowe w WYDARZENIU?