Autor Zpráva
PH
Profil *
Zdravím a prosím o radu. Mám dva sloupce ve dvou tabulkách (dva eshopy):

tabulka1.sloupec_id
tabulka1.sloupec_dostupnost

tabulka2.sloupec_id
tabulka2.sloupec_dostupnost

V těch sloupcích je počet položek na skladě, id jsou čísla produktů.

V tabulce 2 je trochu méně produktů (ale všechny jsou z množiny tabulky1, jen jich je mín, proste eshop s uzším výběrem).

Potřebuju napsat dotaz, který udělá toto:
u všech položek v tabulce2 překopíruj dostupnost z tabulky1.sloupec_dostupnost do tabulky2.sloupec_dostupnost (jen u těch položek které jsou v tabulce2).

Samozřejmě bych to udělal "manuálně" - vybral bych si všechny indexy z tabulky 2 a zjistil pro každý dostupnost v tabulce1 a tu bych zapsal na příslušný řádek do tabulky 2, ale myslím že to není to pravé ;)

Moc děkuji,

PH
Kajman_
Profil *
Normální je, mít dostupnost pouze v tabulce1, jinak vzniká redundance. Dostupnost pak zjistíte propojením tabulek 1 a 2 při selectu.

Můžete zkusit něco takového

update tabulka2 t2 left join tabulka1 t1 on (t2.sloupec_id=t1.slupec_id) set t2.soupec_dostupnost=t1.sloupec_dostupnost
PH
Profil *
Normální je, mít dostupnost pouze v tabulce1, jinak vzniká redundance. Dostupnost pak zjistíte propojením tabulek 1 a 2 při selectu.
Můžete zkusit něco takového
update tabulka2 t2 left join tabulka1 t1 on (t2.sloupec_id=t1.slupec_id) set t2.soupec_dostupnost=t1.sloupec_dostupnost

Moc děkuju, odpoved je pekna a pomohla mi, ale uvedomil jsem si, ze fakt mam vyuzivat zjistovani dostupnosti z prvniho eshopu... problem je jedine v tom, ze potrebuju vratit SELECT * FROM tabulka 2..., ale aby se "prepsal" sloupec z tabulky2.dostupnost na tabulka1.dostupnost - proste aby to vratilo vsechny sloupce z tabulky 2 s dostupnosti z tabulky 1 (abych neměl dva stejné sloupce dostupnost v odpovedi, ale abych mel jako sloupec dostupnost data z tabulky1, všechny osttaní sloupcez tab2). V PHP skriptu pak budu moci použivat proměnné:
$data[jmeno] - to je ziskane z tabulky 2
$data[dostupnost] - to je ziskane z tabulky 1
PH
Profil *
Normální je, mít dostupnost pouze v tabulce1, jinak vzniká redundance. Dostupnost pak zjistíte propojením tabulek 1 a 2 při selectu.
Můžete zkusit něco takového
update tabulka2 t2 left join tabulka1 t1 on (t2.sloupec_id=t1.slupec_id) set t2.soupec_dostupnost=t1.sloupec_dostupnost

Moc děkuju, odpoved je pekna a pomohla mi, ale uvedomil jsem si, ze fakt mam vyuzivat zjistovani dostupnosti z prvniho eshopu... problem je jedine v tom, ze potrebuju vratit SELECT * FROM tabulka 2..., ale aby se "prepsal" sloupec z tabulky2.dostupnost na tabulka1.dostupnost - proste aby to vratilo vsechny sloupce z tabulky 2 s dostupnosti z tabulky 1 (abych neměl dva stejné sloupce dostupnost v odpovedi, ale abych mel jako sloupec dostupnost data z tabulky1, všechny osttaní sloupcez tab2). V PHP skriptu pak budu moci použivat proměnné:
$data[jmeno] - to je ziskane z tabulky 2
$data[dostupnost] - to je ziskane z tabulky 1
Kajman_
Profil *
To přeci není problém propojit. Jen nedávejte * na obě tabulky. Buď jen na jednu nebo sloupce vyjmenujte...

select t2.*,t1.sloupec_dostupnost as dostupnost tabulka2 t2 left join tabulka1 t1 on (t2.sloupec_id=t1.slupec_id)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: