• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie odnośnie kopiowania kolumn z jednoczesną zmianą user_id

Object Storage Arubacloud
+1 głos
261 wizyt
pytanie zadane 10 marca 2021 w SQL, bazy danych przez slowhand Nowicjusz (130 p.)

Cześć,

Proszę o pomoc w skonstruowaniu zapytania.

Mam dwie tabele.

1. Pierwsza jest zestawem domyślnych kategorii składa się z dwóch kolumn: id(autoincrement) oraz name

2. Druga jest zestawem kategorii i składa się z 3 kolumn: id(autoincrement), user_id oraz name

Chodzi o to żeby w przepisać kolumnę name z pierwszej tabeli do drugiej ale jednocześnie nadać user_id do wszystkich przepisywanych wierszy czyli ID zalogowanego użytkownika.

Coś takiego kopiuje pozycję z tabeli do tabeli ale nie wiem jak zrobić w to żeby w kolumnie user_id ustawiało się ID zalogowanego użytkownika:


INSERT INTO incomes_category_assigned_to_users (name)
SELECT name
FROM incomes_category_default



Chodzi o to że ktoś zakłada konto i jak rejestracja kończy się sukcesem z automatu dodawane są do jego konta kategorie (np. wydatków) i każda nowo dodana kategoria jest zaindeksowana jego ID.

Z góry dziękuję i pozdrawiam

Mateusz

komentarz 10 marca 2021 przez Lavaganza Użytkownik (660 p.)
daj jakies Insert Into tabelka dla usera (Select * from tabelka z kategoriami)
komentarz 10 marca 2021 przez slowhand Nowicjusz (130 p.)
Hej dzięki za odpowiedź

właśnie tak dałem jak mówisz z tym że oprócz tego w to zapytanie muszę jakoś wpleść instrukcje żeby nadało mi user_id do każdego rekordu

INSERT INTO incomes_category_assigned_to_users (name)

SELECT name

FROM incomes_category_default
komentarz 10 marca 2021 przez Lavaganza Użytkownik (660 p.)
to cos w stylu

Insert into tabelka dla usera Values ($SEssion[suer_id], select(from domyslne kategorie))

zalezy gdzie trzymasz zalogowany user id albo jak przy rejestracji to po dodaniu usera do tabeli wez jego ID i z tej zmiennej wklej w zapytaniu kopujajcym te kategoire
komentarz 10 marca 2021 przez slowhand Nowicjusz (130 p.)
$Zalogowany jest w kodzie PHP jako zmienna sesyjna tak jak napisałeś .

To co zaproponowałeś powinienem robić w jakiejś pętli? Bo jeśli dobrze rozumiem w ten sposób przepisze jeden rekord
komentarz 10 marca 2021 przez Lavaganza Użytkownik (660 p.)
Nie, nie, jak puscisz takiego SQL to on ci wstawi sam tyle rekordow ile znajdzie w tej bazie z kategoriami
komentarz 10 marca 2021 przez slowhand Nowicjusz (130 p.)

Żeby być bardziej precyzyjny przesyłam prtsc:

To jest tabela default:

A to jest tabela z kategoriami w tabeli userów:

I jak widać przepisały się ładnie tylko bez indeksów user_ID

komentarz 10 marca 2021 przez slowhand Nowicjusz (130 p.)
edycja 10 marca 2021 przez slowhand

Zapytanie :

INSERT INTO incomes_category_assigned_to_users Values (NULL,'452', (SELECT name FROM incomes_category_default))

Zwraca komunikat: #1242 - Subquery returns more than 1 row

Może ktoś wie jak to zapytanie zmienić żeby przepisała kolejno kategorię i do każdej nadała taki sam user_id?

Z góry dzięki

komentarz 10 marca 2021 przez Bartek030 Obywatel (1,460 p.)

Wypróbuj coś takiego:

INSERT INTO incomes_category_assigned_to_users (user_id, name)
SELECT users.user_id, incomes_category_default.name
FROM users, incomes_category_default
WHERE users.user_id = $_SESSION['user_id'];

Od razu mówię, że nie testowałem zapytania - więc być może będziesz musiał nieco to zmodyfikować/poprawić oraz zakładam, że przed wykonaniem tego zapytania wykonasz inne, które doda nowego użytkownika i dzięki temu będziesz mógł użyć jego id z tabeli users. Wtedy robisz zwykłego SELECT'a, ale nie robisz żadnej relacji między tabelami a jedynie warunek, że id usera musi być równe id nowego użytkownika.

Daj znać czy to pomogło, albo chociaż nakierowało, bo aż sam jestem ciekaw smiley

komentarz 10 marca 2021 przez slowhand Nowicjusz (130 p.)
Zagrało aż miło! :) Bardzo dziękuję! Jak już się wie to jest takie oczywiste :D

Jeszcze raz dzięki i czuję sie zobowiązany :D

Pozdrowienia !

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 428 wizyt
+2 głosów
2 odpowiedzi 233 wizyt
pytanie zadane 9 marca 2022 w SQL, bazy danych przez Czang Kai Shrek Obywatel (1,990 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 5 grudnia 2020 w SQL, bazy danych przez lumix97 Nowicjusz (120 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...