Autor | Zpráva | ||
---|---|---|---|
mirio Profil |
Ahoj,
mám otázku na správný zápis spojení dvou MySQL dotazů. Mám dotaz A, který funguje správně... SELECT P.ID_poradce, P.cis_poradce as aktualni_zc, P.prijmeni, P.jmeno, P.aktivni, PI.zisk_cislo as stare_zc, R.region FROM poradce P, regiony R LEFT JOIN poradce_INAS PI ON PI.id_poradce = P.ID_poradce WHERE (P.id_region = R.id_region) AND (PI.expiration = 0 OR PI.expiration IS NULL) Pak mám dotaz B, který také dělá to, co má... SELECT P.id_poradce, P.prijmeni, P.jmeno, P.aktivni, K.id_kariery, KN.nazev FROM poradce P, kariery KN LEFT JOIN por_kar K ON P.id_poradce = K.id_poradce WHERE (K.id_kariery = KN.id_kariery) AND (K.expiration = 0) A potřebuji je spojit v dotaz C, který bude dělat to co A + B dohromady, jenže si s tím nevím rady. Asi bych měl začít takto... SELECT P.ID_poradce, P.cis_poradce as aktualni_zc, P.prijmeni, P.jmeno, P.aktivni, PI.zisk_cislo as stare_zc, R.region, K.id_kariery, KN.nazev as pozice FROM poradce P, regiony R, kariery KN ...ale dále jsem v koncích. Zkusil jsem už asi milion kombinací, které tady radši ani nebudu uvádět :-) , ale žádná nevedla ke kýženému výsledku. Poradíte, prosím? Děkuji. Moderátor nightfish: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
nightfish Profil |
#2 · Zasláno: 3. 6. 2010, 14:52:48
prostou kombinací dotazů vznikne tohle:
SELECT P.ID_poradce, P.cis_poradce as aktualni_zc, P.prijmeni, P.jmeno, P.aktivni, PI.zisk_cislo as stare_zc, R.region, K.id_kariery, KN.nazev as pozice FROM poradce P, regiony R, kariery KN LEFT JOIN poradce_INAS PI ON PI.id_poradce = P.ID_poradce LEFT JOIN por_kar K ON P.id_poradce = K.id_poradce WHERE (K.id_kariery = KN.id_kariery) AND (K.expiration = 0) AND (K.id_kariery = KN.id_kariery) AND (K.expiration = 0) |
||
mirio Profil |
#3 · Zasláno: 3. 6. 2010, 14:55:39
Ahaaaaaaaaaaaaaaa, já trouba jsem pořád špatně zapisoval ty podmínky. Nechával jsem je vždycky ve svém "JOINu", taková blbost. :-))
Dík moc! |
||
mirio Profil |
#4 · Zasláno: 3. 6. 2010, 15:02:30 · Upravil/a: mirio
Tak ještě nemám vyhráno. Pokud to upravím podle nightfishe, tak mi to vypíše každý záznam 6x, což je počet regionů v tabulce, ze které vycházím. To není dobře. :-((
|
||
mirio Profil |
#5 · Zasláno: 3. 6. 2010, 15:08:15
Takto to je, myslím, správně...
SELECT P.ID_poradce, P.cis_poradce as aktualni_zc, P.prijmeni, P.jmeno, P.aktivni, PI.zisk_cislo as stare_zc, R.region, K.id_kariery, KN.nazev as pozice FROM poradce P, regiony R, kariery KN LEFT JOIN poradce_INAS PI ON PI.id_poradce = P.ID_poradce LEFT JOIN por_kar K ON P.id_poradce = K.id_poradce WHERE (P.id_region = R.id_region) AND (PI.expiration = 0 OR PI.expiration IS NULL) AND (K.id_kariery = KN.id_kariery) AND (K.expiration = 0) P.S. Omlouvám se za nepoužití tagů. |
||
Časová prodleva: 14 let
|
0