QSQLITE problem z INSERTem

0

witam, jestem poczatkujacy w QSQLICIE i mam taki problem, wyczytalem w dokumentacji ze INSERT moze sluzyc albo do dopisania jednego wiersza do dowolnej tabeli albo do skopiowania jednego albo wiecej wierszy z innej tabeli. Mi chodzi o ta druga opcje, otoz chcialbym z dwoch tabel o nazwach Operacje i Operation skopiowac pewne dane do tabeli OperationProduct.
Tabela OperationProduct sklada sie z
id INTEGER PRIMARY KEY AUTOINCREMENT
count INTEGER
unit_price REAL
operation INTEGER
product_type INTEGER

do tej tabeli chcialbym wrzucac dane z dwoch tabel Operacje i Operation
Tabela Operacje (id INTEGER PRIMARY KEY AUTOINCREMENT, product_type_id INTEGER, ilosc INTEGER, cena_jd REAL)
Tabela Operation (id INTEGER PRIMARY KEY AUTOINCREMENT, typ TEXT, data TEXT, comment TEXT)

mianowicie do tabeli OperationProduct chce wrzucac nastepujace rzeczy:
do count, ilosc z tabeli Operacje
do unit_price, cena_jd z tabeli Operacje
do operation, id (ostatnie ktore jest w tabeli) z tabeli Operation
do product_type, prouct_type_id z tabeli Operacje

napisalem cos takiego:
Q_ASSERT(q.prepare("INSERT INTO OperationProduct SELECT ilosc, cena_jd,Operation.id, product_type_id FROM Operacje, Operation"));

jednak to nie dziala, czy moglby mi ktos doswiadczony podpowiedziec jak cos takiego zrobic?? bede bardzo wdzieczny

0

primo: zdefiniuj co znaczy "nie dziala"

btw. w zapytaniu "INSERT INTO OperationProduct SELECT ilosc, cena_jd,Operation.id, product_type_id FROM Operacje, Operation" masz same gagi..

  1. przy insercie zawsze warto podawac, jakiej kolejnosci kolumn sie spodziewasz, zwlaszcza ze celowo olewaz kolumne "ID" w tabeli docelowej:
    ---> INSERT INTO OperationProduct(count, unit_price, operation, product_type) SELECT ...
  2. Twoje zapytane zrodlowe mowi: " FROM Operacje, Operation ", a to robi pelny produkt kartezjanski wszystko-razy-wszystko...
    jestem prawie pewien, ze chcialbys tam raczej miec:
    albo: .... FROM Operacje JOIN Operation ON Operation.??? = Operacje.???
    albo: .... FROM Operacje, Operation WHERE Operation.??? = Operacje.???
    a co wstawic w miejsce pytajnikow, to juz Ty tylko obecnie wiesz
0
quetzalcoatl napisał(a)

a co wstawic w miejsce pytajnikow, to juz Ty tylko obecnie wiesz

po napisaniu tego, zerknalem jeszcze na Twoj post, i zauwazylem

stefano napisał(a)

ostatni ktory jest w tabeli

mozesz wyelaborowac? albo poczytaj i rozbuduj swoje zapytanie o top/orderby/groupby/max/having/ itp

1 użytkowników online, w tym zalogowanych: 0, gości: 1