專業粉刷,各式油漆粉刷專業負責價格合理,免費到府勘查估價 | 提供各式清潔服務,專業打蠟,價格實在,免費到府估價 |
[問題]多重資料表查詢 |
房東:阿澤 發表時間: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」 ) |