2013-01-18 157 views
-1

我在兩個不同的數據庫中有兩張表。Mysql加入兩張表

  1. Kalix2 - >我有一個表ph_Companies
  2. Asterisk - >在這裏,我有表名爲cdr

在ph_Companies我有公司名稱列和公司名稱是在這種格式。

CompanyName 
    AccuWebHosting 

在其他表中,我有另一列clid存儲以下格式的公司名稱。

clid 
    "AccuWebHosting-EN" <6618083563> 

現在,我的問題是如何使這兩個表之間的連接基於此列。在這兩個表中,這些是唯一具有一些共同數據的列。沒有其他專欄有類似的數據。

請幫幫我。提前致謝。

回答

0
SELECT a.*, b.* 
FROM ph_Companies a 
     INNER JOIN otherTable b 
      ON b.clid LIKE CONCAT('%', a.CompanyName, '%') 

請注意,如果您想要大型數據庫,此查詢速度非常慢,因爲它需要FullTable掃描。原因是你有「壞」的模式設計。我會建議你改變的表像這樣,

CREATE TABLE ph_Companies 
(
    ID INT PRIMARY KEY, 
    CompanyName VARCHAR(20), 
    -- OTHER COLUMNS HERE 
); 

CREATE TABLE otherTable 
(
    ID INT AUTO_INCREMENT PRIMARY KEY, 
    CompanyID INT, 
    CompanyName VARCHAR(20), 
    clid VARCHAR(50), 
    -- OTHER COLUMNS HERE 
    CONSTRAINT tb_fk FOREIGN KEY (CompanyID) 
     REFERENCES ph_Companies (ID) 
); 

,你將有這樣的查詢,

SELECT a.*, b.* 
FROM ph_Companies a 
     INNER JOIN otherTable b 
      ON a.ID = b.CompanyID 

這是FAR超過上面的查詢更好。

+0

很多非常感謝你,它運作良好。 – Saurabh

+0

不客氣。 ':D' –

+0

如果您覺得答案可以解決問題,請點擊白色複選標記(*大約15分鐘到1小時後*),將其標記爲「接受」。這有助於將重點放在仍然沒有答案的舊版SO問題上。 [*接受答案如何工作?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –