none
請問有8個table 我該怎麼撈取資料 RRS feed

  • 問題

  • 各位前輩好,小弟目前遇到一個問題

    就是我目前有 A,B,C,D,E,F,G,Z 8個table

    A~G的某一個欄位都和Z的某一個欄位有關連

    我想一次搜尋出A~G的7張表的所有欄位和Z這個表的某一個欄位

    請問我該怎麼做比較好?

    2019年11月26日 上午 08:57

解答

  • 或許也可以依照你的實際需求調整下列作法,例如用inner join搭配union的方式:

    create table a (ca1 int, ca2 int,cf int);
    create table b (cb1 int, cb2 int,cf int);
    create table c (cc1 int, cc2 int,cf int);
    create table d (cd1 int, cd2 int,cf int);
    create table e (ce1 int, ce2 int,cf int);
    create table f (cf1 int, cf2 int,cf int);
    create table g (cg1 int, cg2 int,cf int);
    create table z (c1 int, c2 int);
    
    insert into a values(100,101,1);
    insert into b values(200,201,1);
    insert into c values(300,301,1);
    insert into d values(400,401,1);
    insert into e values(500,501,1);
    insert into f values(600,601,1);
    insert into g values(700,701,1);
    insert into z values(1,999);
    
    
    select a.ca1,a.ca2,z.c1 from a 
    inner join z on a.cf = z.c1
    union 
    select b.cb1,b.cb2,z.c1 from b 
    inner join z on b.cf = z.c1
    --以此類推,略
    


    | SQL PASS Taiwan Page | SQL PASS Taiwan Group

    | My Blog

    • 已標示為解答 stanleyiam 2019年12月5日 上午 03:49
    2019年11月27日 上午 01:32
    版主

所有回覆

  • 曹狀 INNER JOIN 可以八個表。

    不過你的看起來用同時用連集與 INNER JOIN ?


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年11月26日 下午 03:34
  • 或許也可以依照你的實際需求調整下列作法,例如用inner join搭配union的方式:

    create table a (ca1 int, ca2 int,cf int);
    create table b (cb1 int, cb2 int,cf int);
    create table c (cc1 int, cc2 int,cf int);
    create table d (cd1 int, cd2 int,cf int);
    create table e (ce1 int, ce2 int,cf int);
    create table f (cf1 int, cf2 int,cf int);
    create table g (cg1 int, cg2 int,cf int);
    create table z (c1 int, c2 int);
    
    insert into a values(100,101,1);
    insert into b values(200,201,1);
    insert into c values(300,301,1);
    insert into d values(400,401,1);
    insert into e values(500,501,1);
    insert into f values(600,601,1);
    insert into g values(700,701,1);
    insert into z values(1,999);
    
    
    select a.ca1,a.ca2,z.c1 from a 
    inner join z on a.cf = z.c1
    union 
    select b.cb1,b.cb2,z.c1 from b 
    inner join z on b.cf = z.c1
    --以此類推,略
    


    | SQL PASS Taiwan Page | SQL PASS Taiwan Group

    | My Blog

    • 已標示為解答 stanleyiam 2019年12月5日 上午 03:49
    2019年11月27日 上午 01:32
    版主
  • 感謝前輩指點

    問題已解決

    2019年12月5日 上午 03:49
  • 感謝前輩撥空提點

    問題已解決!

    2019年12月5日 上午 03:50