Mysql连接两个表
我在两个不同的数据库中有两个表Mysql连接两个表,mysql,sql,join,Mysql,Sql,Join,我在两个不同的数据库中有两个表 Kalix2-->我有一个表PHU公司 Asterisk-->这里有一个名为cdr的表 在PHU公司中,我有CompanyName列,公司名称采用这种格式 CompanyName AccuWebHosting 在另一个表中,我有另一列clid,它以以下格式存储公司名称 clid "AccuWebHosting-EN" <6618083563> clid “AccuWebHosting EN” 现在,我的问题是如何基于此列
Kalix2
-->我有一个表PHU公司
Asterisk
-->这里有一个名为cdr
的表 CompanyName
AccuWebHosting
在另一个表中,我有另一列clid,它以以下格式存储公司名称
clid
"AccuWebHosting-EN" <6618083563>
clid
“AccuWebHosting EN”
现在,我的问题是如何基于此列在这两个表之间建立连接。在这两个表中,它们是唯一具有一些公共数据的列。没有其他列具有类似的数据
请帮帮我。提前谢谢
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
你会有这样一个问题
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
这比上面的查询要好得多。如果您觉得有答案解决了问题,请单击白色复选标记(大约15分钟到一小时后)将其标记为“已接受”。这有助于将注意力集中在仍然没有答案的老问题上。