Autor | Zpráva | ||
---|---|---|---|
P3T3R Profil |
#1 · Zasláno: 6. 6. 2011, 10:05:09
Dobrý deň,
mám problém s porovnávaním tabuliek. Sú 2 databázy na 1 servery, kde sú 2 tabuľky: prva_tabulka a druha_tabulka <?php $prva_tabulka = "SELECT * FROM databaza_jedna WHERE tabulka_jedna ORDER BY 'pole_jedna' DESC"; $druha_tabulka = "SELECT * FROM databaza_dva WHERE tabulka_dva ORDER BY 'pole_dva' DESC"; $vysledok = strpos($prva_tabulka, $druha_tabulka); if($vysledok === FALSE) { echo "nenajdene"; } else { echo "najdene"; } echo "</td> " ; } mysql_free_result($result); ?> Potrebujem ak sa v databaza_jedna zhoduje s databaza_dva pole pole_jedna a pole_dva vypíše zhoda ak nie tak nenájdené. Ďakujem |
||
YoSarin Profil |
#2 · Zasláno: 6. 6. 2011, 10:15:48 · Upravil/a: YoSarin
P3T3R:
ech? Podle tohohle textu kontroluješ jestli obsah sql dotazu (ne výsledek, ale přímo ten string) je obsažen v druhém sql dotazu (opět jen ve stringu). Porovnáváš dva stringy, s databází to nemá naprosto nic společného... edit Prostuduj si návody a uvidíš... |
||
P3T3R Profil |
#3 · Zasláno: 6. 6. 2011, 10:34:40
YoSarin:
Bože :D Dnes mám fakt blbý deň. S php nie som ešte moc v pokročilom štádiu. Čo sa týka toho doplnil som tam mysql_query aby to vytiahlo z db a porovnalo cez strpos ale nefunguje to nejak :-/ robím niečo zle? |
||
YoSarin Profil |
#4 · Zasláno: 6. 6. 2011, 12:11:28
P3T3R:
Bude toho víc - být tebou pořádně bych prostudoval ty návody - pěkně od začátku až do konce. 1) prostuduj návody (bez ohledu na to, jak dlouho to bude trvat a jak a pomalu to půjde) 2) podle SQL dotazu si pleteš pojmy "databáze", "tabulka" a "sloupeček" 3) podívej se do manálu co dělá funkce strpos (jaké bere parametry, co porovnává) 4) podívej se do manuálu co dělá mysql_query (co je návratová hodnota) |
||
P3T3R Profil |
#5 · Zasláno: 6. 6. 2011, 17:16:53
YoSarin:
No len by som to potreboval skôr troška, študujem to pomaly, je toho dosť. Nejaké riešenie by si mi poradil? Asi by som to mal riešiť cez LEFT JOIN ako som sa dočítal zatiaľ, ale nejak mi to stále nejde :-/ |
||
okolojdouci Profil * |
#6 · Zasláno: 6. 6. 2011, 17:35:33
P3T3R:
Zopakoval bych, co napsal YoSarin. Dotaz má vypadat takto: SELECT * FROM tabulka WHERE pole = hodnota ORDER BY pole DESC Ty máš: SELECT * FROM databaza_jedna WHERE tabulka_jedna ORDER BY 'pole_jedna' DESC Z toho plyne, že nemáš jasno ani v základních pojmech. „Potrebujem ak sa v databaza_jedna zhoduje s databaza_dva pole pole_jedna a pole_dva vypíše zhoda ak nie tak nenájdené.“ To je takový nesmysl, že na to nelze odpovědět. Databáze můžou být stejné, můžou být identické, ale ani jedno zřejmě není to, na co se snažíš zeptat. |
||
okolojdouci Profil * |
#7 · Zasláno: 6. 6. 2011, 17:40:01
Chybějící diakritika a interpunkce je fajn bonus.
|
||
P3T3R Profil |
#8 · Zasláno: 6. 6. 2011, 18:25:16
okolojdouci:
Ďakujem za rady. Čo sa týka toho dotazu to mám už upravené, len sme sa asi nepochopili v tom čo potrebujem. Ide o porovnanie dvoch polí v dvoch tabuľkách. Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené, ak nie tak nenájdené. Pôjde to cez ten strpos? Alebo ako to vyriešiť? |
||
okolojdouci Profil * |
#9 · Zasláno: 6. 6. 2011, 22:06:11
P3T3R:
> Čo sa týka toho dotazu to mám už upravené, len sme sa asi nepochopili v tom čo potrebujem. > Ide o porovnanie dvoch polí v dvoch tabuľkách. Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené, ak nie tak nenájdené. Nepochopili sme sa ani na druhý pokus. "Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené" je shluk náhodně vygenerovaných slov? Můžu jen odhadovat, jestli chceš vypsat položky, které v jedné tabulce jsou a v druhé ne, nebo třeba něco úplně jiného. Čo sa zhoduje? Čo sa má vypísať? |
||
P3T3R Profil |
#10 · Zasláno: 7. 6. 2011, 08:41:17
okolojdouci:
> Nepochopili sme sa ani na druhý pokus. > "Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené" je shluk náhodně vygenerovaných slov? Sú dva polia v dvoch tabuľkách na jednom servery (mám mysql root). V poli 1 sú čísla, ktorú sú aj v poli 2. Nie sú zhodné pod IDčkom. Preto potrebujem porovnať pole_jedna s pole_dva, a ak sa z pola_jedna nachádza číslo v pole_dva vypíše zhoda. Neviem, či sme sa pochopili, alebo mi dáte nejaký kontakt bližší a vyriešime to tam :) |
||
YoSarin Profil |
#11 · Zasláno: 7. 6. 2011, 10:32:35 · Upravil/a: YoSarin
SELECT * FROM tabulka_1 WHERE sloupec_1 NOT IN (SELECT sloupec FROM tabulka_2); |
||
Časová prodleva: 3 roky
|
|||
slonicek Profil * |
#12 · Zasláno: 3. 9. 2014, 10:16:04
tu navod ako porovnat tabulky v db
http://www.projectik.eu/index.php/database/oracle/oracle-sql/item/250-sql-porovnanie-zhodnosti-obsahu-dvoch-tabuliek |
||
juriad Profil |
#13 · Zasláno: 3. 9. 2014, 10:23:11
Ano, ale to funguje jen na Oracle, MySQL operátor MINUS nemá, proto se musí nahrazovat buď konstrukcí s NOT IN nebo LEFT JOIN s podmínkou na NULL. Porovnávání shody ve všech sloupcích je pak vážně chuťovka, ale to P3T3R naštěstí nepotřeboval.
Chvíli hrozilo, že bude chtít porovnávat tabulky v různých databázích, ale i na to naštěstí existuje řešení v obou databázových systémech. (Nevím, jak je podporované na hostinzích.) |
||
Časová prodleva: 10 let
|
0