易祺專業清潔
為客戶打造最優質的環境
搬家快清辦公桌吧
辦公室細菌量比廁所高400倍!

首頁  •  j2h 論壇 • 程式設計討論     • 

[問題]多重資料表查詢

房東:阿澤
發表時間:2009-11-26


希望有高手可以幫忙解答@@

我現在有三個資料表A B C
Table A
IDNameDef
124BillXXXXX


Table B
IDNameDef
257WilliamXXXXX


Table C
CIDID
1124
1257

Bill跟William其實是同一人
但是當我下"Bill"搜尋的時候
William這筆資料也要能被搜尋到
也就是當這兩筆資料在Table C中的CID都是1時
就會被找出來
然後Table A跟Table B的ID都是唯一的

不知道這樣的說明夠不夠清楚@@
麻煩高手瞭解的話
告訴我要怎麼做
謝謝∼



  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務

  • 1 樓住戶:仔仔
    發表時間:2009-11-26

    我會考慮使用INNER JOIN及UNION來完成主要資料
    再使用另一查詢來完成

    SELECT CID FROM
    (SELECT A.ID, A.Name, A.Def, C.CID
       FROM A INNER JOIN C ON A.ID=C.ID
    UNION
    SELECT B.ID, B.Name, B.Def, C.CID
       FROM B INNER JOIN C ON B.ID=C.ID
     ) AS AA

    如此可先找出欲搜尋的名稱的CID,並將其值交給某一變數

    SELECT * FROM
    (SELECT A.ID, A.Name, A.Def, C.CID
      FROM A INNER JOIN C ON A.ID=C.ID
    UNION
    SELECT B.ID, B.Name, B.Def, C.CID
      FROM B INNER JOIN C ON B.ID=C.ID
    ) AS AA
    WHERE CID=「變數位置」


    其實構想蠻簡單的,就是先完成

    ID  Name  Def  CID
    124  Bill  XXXX  1
    257 William  XXXX  1


    可能要動用到多層的子查詢,才有辦法一次完成

    SELECT * FROM
    (SELECT A.ID, A.Name, A.Def, C.CID
      FROM A INNER JOIN C ON A.ID=C.ID
     UNION
     SELECT B.ID, B.Name, B.Def, C.CID
      FROM B INNER JOIN C ON B.ID=C.ID
    ) AS AA
    WHERE CID=(SELECT CID FROM
     (SELECT A.ID, A.Name, A.Def, C.CID
       FROM A INNER JOIN C ON A.ID=C.ID
      UNION
      SELECT B.ID, B.Name, B.Def, C.CID
       FROM B INNER JOIN C ON B.ID=C.ID
      ) AS BB WHERE Name=「Bill」
     )




     共 1 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容:
    其他選項: