-1

我在两个不同的数据库中有两个表。

  1. Kalix2-->我有一张桌子ph_Companies
  2. Asterisk--> 这里我有一个叫做cdr.

在 ph_Companies 中,我有 CompanyName 列,公司名称采用这种格式。

   CompanyName
  AccuWebHosting

在另一个表中,我有另一个列 clid,它以以下格式存储公司名称。

    clid
   "AccuWebHosting-EN" <6618083563> 

现在,我的问题是如何根据此列在这两个表之间进行连接。在这两个表中,这些是唯一具有一些共同数据的列。没有其他列具有类似的数据。

请帮我。提前致谢。

4

1 回答 1

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

注意,如果您需要大型数据库,则此查询非常慢,因为它需要全表扫描。原因是您的架构设计“糟糕”。我会建议你像这样改变表格,

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

这比上面的查询要好得多

于 2013-01-18T14:52:56.627 回答