Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

select in 2 baze de date
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
xtremecris



Data înscrierii: 13/Feb/2004
Mesaje: 32
Locație: Bucuresti, Regie

Trimis: Vin Sep 24, 2004 11:20 am    Titlul subiectului: select in 2 baze de date  

Cum pot sa dau un select care sa imi returneze rezultate din 2 baze de date in urmatorul fel:
sa imi returneze rezultatele ori din prima baza ori din a doua reunite dar field-urile sa fie si ele reunite.

Mai concret:
baza 'A' are fieldurile: id, pret, nume
baza 'B' are fieldurile: id, reputatie, nume

rezultatele select-ului sa aiba: id, pret, reputatie, nume iar cand se da rezultate din 'B' pret-ul poate fi orice ca nu este important iar id reputatie si nume sa fie cele din B; daca se da rezultate din A sa aiba id, pret, nume din A iar reputatie poate fi orice, uzual 0.
Sus  
Radical



Data înscrierii: 16/Feb/2004
Mesaje: 327
Locație: Bucuresti

Trimis: Vin Sep 24, 2004 11:54 am    Titlul subiectului: databasename.tablename.fieldname  

In MySQL functioneaza databasename.tablename.fieldname
Acuma cum le pui si sau folosesti e ceva mai complicat.
Ca sa-mi fa o idee de ansamblu da-mi si mie un DESCRIBE TABLE:
Cod: mysql> describe link_dir;
+--------+---------------------+------+-----+----------+----------------+
| Field  | Type                | Null | Key | Default  | Extra          |
+--------+---------------------+------+-----+----------+----------------+
| id     | bigint(20) unsigned |      | PRI | NULL     | auto_increment |
| parent | bigint(20) unsigned |      | MUL | 0        |    |
| level  | bigint(20) unsigned | YES  |     | NULL     |    |
| frunze | bigint(19) unsigned |      |     | 0        |    |
| categ  | varchar(255)        | YES  | MUL | NULL     |    |
| ordine | int(10) unsigned    |      | MUL | 0        |    |
+--------+---------------------+------+-----+----------+-----+
7 rows in set (0.05 sec)
Sus  
xtremecris



Data înscrierii: 13/Feb/2004
Mesaje: 32
Locație: Bucuresti, Regie

Trimis: Vin Sep 24, 2004 12:05 pm    Titlul subiectului:  

De fapt m-am exprimat gresit, selectul trebuie sa returneze rezultate din 2 TABELE(nu baze de date), care au field-uri comune(adica au acelasi nume si aceeasi semnificatie) si field-uri specifice tabelei respective.

baza 'A' are fieldurile: id, pret, nume
baza 'B' are fieldurile: id, reputatie, nume

Ca un exemplu:
Tabela A:
--------------------------------------------
ID | PRET | NUME
------------------------------------------
1 | 1000 | cablu de date
2 | 2500 | cablu de date de calitate superioara
....


Tabela B:
Tabela A:
--------------------------------------------
ID | REPUTATIE | NUME
------------------------------------------
3 | 10 | imprimanta Lexmark
4 | 4 | imprimanta Canon


Rezultatul select-ului ar trebuii sa fie:

------------------------------------------------------------------------
ID | PRET | REPUTATIE | NUME
--------------------------------------------------------------------
1 | 1000 | 0 | cablu de date
2 | 2500 | 0 | cablu de date de calitate superioara
3 | 0 | 10 | imprimanta Lexmark
4 | 0 | 4 | imprimanta Canon

Sigur nu exista acelasi id si in tabela A si in tabela B, d-asta la rezultatele select-ului imi da 1, 2, 3, 4 si nici un id de 2 ori.
Sus  
Radical



Data înscrierii: 16/Feb/2004
Mesaje: 327
Locație: Bucuresti

Trimis: Lun Sep 27, 2004 11:42 am    Titlul subiectului:  

Acuma am inteles ce vrei tu.
UNION merge numai pe MySQL 4... acuma mai jos minor nu pot sa-ti zis... la mine pe 4.0.18 merge OK.
Ai asa:

(SELECT id, pret, "0" AS reputatie, nume FROM tabela_A)
UNION
(SELECT id, "0" AS pret, reputatie, nume FROM tabela_B)
ORDER BY id ASC
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community