test2 Posted April 4, 2009 Report Share Posted April 4, 2009 Tātad kā jau iekš topic title un topic description nopratāt man vajag atlasīt datus no daudzam tabulām, un jautājums ir kā to vislabāk izdarīt? Man ir šāda situācija ir kopā 10 tabulas, kuras satur datus un katrai no tabulām ir lauks userid. Un tad nu man vajag atlasīt no šīm 10 tabulām datus kur userid ir vienāds ar kkādu noteikta lietotāja id. Kā izskatīsies selects? Quote Link to comment Share on other sites More sharing options...
renathy Posted April 4, 2009 Report Share Posted April 4, 2009 Var atlasīt pa daļām, piemēram: $query1 = 'select * from table1 where user_id = '.$id; $query2 = 'select * from table2 where user_id = '.$id; $query3 = 'select * from table3 where user_id = '.$id; ... Man šķiet, ka var arī salikt visu vienā kverijā: $query1 = 'select * from table1, table2, table3, table4... where table1.user_id = '.$id.' and table1.user_id = table2.user_id and table1.user_id = table3.user_id and table1.user_id = table4.user_id...'; Quote Link to comment Share on other sites More sharing options...
test2 Posted April 4, 2009 Author Report Share Posted April 4, 2009 Sk, varbūt kādam ir kas labāks padomā? Quote Link to comment Share on other sites More sharing options...
bubu Posted April 4, 2009 Report Share Posted April 4, 2009 Ja atlasāmo lauku skaits ir vienāds, tad var lietot UNION'u: (SELECT a, b, c FROM table1 WHERE user_id=$id) UNION (SELECT d, e, f FROM table2 WHERE user_id=$id) ... Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted April 4, 2009 Report Share Posted April 4, 2009 Atkarībā no tā kā vēlies atspoguļot resultātu varētu noderēt kāds no savienojumu veidiem vai arī ka jau minēja kopas operators UNION, tikai ļoti jau nu izskatās, ka jālieto UNION ALL nevis vienkārši UNION. Par atšķirībām skat norādītajā rakstā. Gints Plivna http://datubazes.wordpress.com Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.