Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok NapísalOffline : 15.05.2016 17:50

Ahoj,

potreboval by som poradit. Ako v mysql vypisem vedla seba stlpce z dvoch tabuliek bez toho aby mi vypisalo "kazdy s kazdym". Mam napriklad tabulku A, v ktorej je stlpec Hodnota a v nom cisla od 1 do 10 a mam tabulku B s tym istym stlpcom a v nom hodnoty od 11 do 20. Chcem aby sa mi vypisala jedna tabulka, v ktorej budu tieto 2 stlpce vedla seba. Ale nie kazdy s kazdym. Dakujem.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 15.05.2016 20:54

Musíš nejak definovať spojenie medzi tými tabulkami. Databáza nemá odkiaľ vedieť, ktoré čísla má zobraziť vedľa seba. Či má na jeden riadok dať 1,11, alebo 14,19, ona v tom rozdiel nevidí.

Takže ak medzi tými stĺpcami existuje nejaký vzťah, tak ho daj jednoducho do joinu.
Napr. pre daný príklad, kde v jedno stĺpci sú čísla 1-10 a v druhom 11-20, môže to byť
Kód:
select t1.col1, t2.col2
from tab1 t1
join tab2 t2 on (t2.col2 = 10+t1.col1)


Ak medzi stĺpcami žiadny vzťah nie je tak to je zložitejšie, ale dá sa to (pozor! to môže byť komplikovanejší vzťah aj cez iný stĺpec, záleží na dátach).
Bude to ale aj úplne náhodné a nenapadá ma zmysel takého niečoho. Budeš mať totiž vedľa seba náhodne nejaké dve hodnoty zo všetkých možných kombinácií. Pričom sa to dá trochu korigovať pomocou order by, ale to nie je veľmi relačný prístup.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 15.05.2016 22:11

Mozno som svoju otazku nepolozil najlepsie, tak to skusim znovu.
Ucim sa SQL a mam dve tabulky. V tabulke emp_tbl mam zamestnancov s udajmi ako ID, meno, priezvisko, atd a v tabulke emp_pay_tbl mam udaje ID, plat, hod. mzda, atd. V kazdej je 12 zaznamov, ale jeden maju rozdielny - rozdiel je v stlpci ID lebo ten ich identifikuje. Teda pre 11 zamestnancov sa da vyselektovat tabulka, kde ich spojim cez ID. No lenze by som chcel napisat select, ktory by mi zobrazil 2 stlpce s ID zamestnancov z jednej aj druhej tabulky vedla seba. Aby som ich mal pekne vedla seba a videl kde sa odlisuju. Ale neviem ako to spravit. Napadlo ma len
Kód:
select e.emp_id, ep.emp_id
from emp_tbl e, emp_pay_tbl ep
where e.emp_id = ep.emp_id;

lenze to samozrejme zobrazi len tych 11 zaznamov a ten jeden, v ktorom sa nezhoduju to nezobrazi. Da sa to nejako spravit? Dakujem za odpoved.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 16.05.2016 7:13

Ty asi myslíš outer join. Miesto cross joinu použi left join, alebo right join na ID, where zruš a napíš, či vidíš to čo chceš. Možno budeš chcieť full outer, ale to mysql natívne nevie, tak to napíšem potom.
Ak nie, tak ešte raz a napíš všetky stĺpce, žiadne "atď".







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 16.05.2016 17:31

Ahoj, tabulky vyzeraju takto
Kód:
CREATE TABLE EMP_TBL
(EMP_ID      CHAR(9)     NOT NULL,
 LAST_NAME   VARCHAR(15) NOT NULL,
 FIRST_NAME  VARCHAR(15) NOT NULL,
 MIDDLE_NAME VARCHAR(15) NULL,
 ST_ADD      VARCHAR(20) NOT NULL,
 CITY        VARCHAR(20) NOT NULL,
 REGION      CHAR(2)     NOT NULL,
 ZIP         VARCHAR(5)  NOT NULL,
 HOME_PH     VARCHAR(9)  NULL,
 EMER_CONT   VARCHAR(30) NULL,
 EMER_PH     VARCHAR(9) NULL,
 CONSTRAINT EMP_PK PRIMARY KEY (EMP_ID));

CREATE TABLE EMP_PAY_TBL
(EMP_ID     CHAR(9)      NOT NULL,
 DT_START   DATE         NOT NULL,
 POSITION   VARCHAR(30)  NOT NULL,
 SALARY     DECIMAL(8,2) NULL,
 HR_PAY     DECIMAL(6,2) NULL,
 COUNTY     VARCHAR(15)  NOT NULL,
 DEPARTMENT VARCHAR(15)  NOT NULL,
 CONSTRAINT EMP_PAY_PK PRIMARY KEY (EMP_ID));

Skusil som tento prikaz
Kód:
select e.emp_id, ep.emp_id
from emp_tbl e
left outer join emp_pay_tbl ep on (e.emp_id = ep.emp_id);


Vysledok je urcite lepsi ako ten select s where. Uz vypisalo dvanast riadkov, len na poslednom riadku je v lavom stlpci hodnota a v pravom NULL. Ale v podstate som chcel, aby boli oba stlpce naplnene hodnotami, ktore su v tabulkach, bez toho NULL vpravo. Ak to je vobec mozne.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 16.05.2016 18:21

A aké hodnoty by si tam chcel?
Ak je v tabulke emp_pay riadok, ktorý nemá odpovedajúce emp_id, tak je tam nejaký starý plat, ktorého zamestnanec už neexistuje.
Ak je v tabulke emp riadok a v emp_pay nie je odpovedajúce emp_id, tak daný zamestnanec nemá pridelený plat. A nemôžeš mu tam predsa nejaký vymyslieť, to je nezmysel.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 18.05.2016 17:25

No ja viem, ze to co som chcel nema nejaky velky zmysel, ja som si iba tak pre seba chcel napisat prikaz, ktory by to urobil. Aby som si tak otestoval sam seba, co viem. Ale tak mozno sa to neda napisat. Aj ked premyslal som, ze by to mozno slo cez union. No ale chcel som v principe stlpec emp_id z jednej tabulky a vedla neho emp_id stlpec z tej druhej tabulky. Ale bez kartezskeho sucinu, len vypis tych 12 hodnot vedla seba.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 18.05.2016 18:28

Takto ale relačné databáze nefungujú. Dať do jedného riadku 2 hodnoty, ktoré so sebou vôbec nesúvisia, je dosť ťažké. A to preto, že je to nezmyselné a normálne to nemáš prečo robiť.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 20.05.2016 13:55

OK, aj som si myslel, ze to mozno nepojde/nebude jednoduche. Dakujem za pomoc.


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Vypis z databazi do dvoch stlpcov

v PHP, ASP

4

424

22.11.2007 16:11

mondzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zoradenie dvoch stlpcov + vypis len unikatnych riadkov

v Databázy

3

352

16.03.2014 17:17

killer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Duplikácia stĺpcov

v Databázy

1

589

22.05.2011 21:46

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. update viacerych stlpcov

v Databázy

2

648

01.09.2008 22:19

m4r14n Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Zarovnanie stlpcov tabuľky

v HTML, XHTML, XML, CSS

10

867

23.06.2010 21:02

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Grid a názvy stlpcov

v Delphi, Visual Basic

0

469

02.12.2010 14:36

jasug Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Uzamknutie stĺpcov EXCEL 2007

v Ostatné programy

2

2303

09.08.2012 15:54

stefan-s Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Spajanie rovnakych stlpcov tabulky..

v Databázy

11

1074

05.02.2009 21:46

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nedostatok stlpcov v exceli

v Ostatné programy

3

785

03.10.2007 11:02

mimkork Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zoradenie stlpcov po kliknuti

v JavaScript, VBScript, Ajax

6

655

22.02.2010 18:22

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pc na hry bez taktovania 650-700e bez monitora bez OS

v PC zostavy

9

1312

03.12.2012 19:52

brmbo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Porovnanie 2 stlpcov v exceli

v Ostatné programy

4

751

26.01.2017 12:43

arindal Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Porovnanie stlpcov matice v C++

v Assembler, C, C++, Pascal, Java

3

414

21.03.2015 12:18

focko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Max.pocet stlpcov v tabulke

v Databázy

21

1616

20.08.2008 10:20

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Herne PC do 600e bez periferii, bez OS, bez HDD

v PC zostavy

9

1180

26.11.2011 15:59

Ondr00 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Spojenie 2 stlpcov do 1 stlpca

v Databázy

6

1327

06.01.2010 20:59

baumax Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra