Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łączenie tabel i nadpisywanie bez kasowania CONCAT
nikestylex7
post
Post #1





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


Witam. Mam problem chciałbym dopisać wartość do tabeli z innej tabeli

posiadam dwie tabele
pierwsza mytable3 -miejscowosci
id nazwa wojewodztwo powiat

druga mytable2 - powiaty
id Wojewodztwo nazwa

Chciałbym dopisać powiat do kolumny nazwa w mytable3 sprawdzanie po id i wojewodztwie aby było przypasowane
Napisałem zapytanie
  1. UPDATE a
  2. SET a.nazwa = CONCAT(a.nazwa,b.nazwa)
  3. FROM mytable3 a JOIN mytable2 b
  4. ON b.id = a.powiat AND b.Wojewodztwo = a.wojewodztwo
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


  1. UPDATE `mytable3` `a`
  2. SET `a`.`nazwa` = CONCAT(`a`.`nazwa`, `b`.`nazwa`)
  3. JOIN `mytable2` `b`
  4. ON `b`.`id` = `a`.`powiat`, `b`.`Wojewodztwo` = `a`.`wojewodztwo`

O ile pierwsza linijka zadziała(ten alias) to reszta już powinna normalnie,
Przetestuj ;d

Ten post edytował KsaR 15.12.2015, 21:00:18
Go to the top of the page
+Quote Post
nikestylex7
post
Post #3





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


Niestety #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN `mytable2` `b `
ON
`b`.`id` = `a`.`powiat`,
`b`.`wojewodztwo` = `a`.`woj' at line 3

Próbuje różne możliwości i nic po concat nic nie przechodzi

  1. UPDATE `mytable3`
  2. SET `nazwa` = CONCAT(`nazwa`, `b`.`nazwa`)
  3. FROM
  4. `mytable3` AS `A` INNER JOIN `mytable2` AS `B` ON `a`.`powiat` = `b`.`id`
  5. WHERE
  6. `b`.`wojewodztwo` = `a`.`wojewodztwo`


też nic
Go to the top of the page
+Quote Post
KsaR
post
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


http://athlan.pl/mysql-update-join/
  1. UPDATE `mytable3` `a`
  2. JOIN `mytable2` `b`
  3. ON `b`.`id` = `a`.`powiat`, `b`.`Wojewodztwo` = `a`.`wojewodztwo`
  4. SET `a`.`nazwa` = CONCAT(`a`.`nazwa`, `b`.`nazwa`)

A tak?

Ten post edytował KsaR 15.12.2015, 21:48:09
Go to the top of the page
+Quote Post
nikestylex7
post
Post #5





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.`wojewodztwo`
SET `a`.`nazwa` = CONCAT(`a`.`nazwa`, `b`.`nazwa`)' at line 3

Zaraz przeczytam ten blog
Go to the top of the page
+Quote Post
KsaR
post
Post #6





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Wez jeszcze sprobuj z AND ponownie ;D jak nie dziala to sie poddaje.

Tzn zamiast
ON `b`.`id` = `a`.`powiat`, `b`.`Wojewodztwo` = `a`.`wojewodztwo`
Zrobic
ON `b`.`id` = `a`.`powiat` AND `b`.`Wojewodztwo` = `a`.`wojewodztwo`
Go to the top of the page
+Quote Post
nikestylex7
post
Post #7





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


Powiem Ci że poszło lecz nie uzupełniło mi kilku powiatów pewnie że nie ma odpowiedników dla nich muszę to sprawdzić dzięki za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 04:36