我是MySQL的新手,以前在MS Access中完成了所有工作。我试图将2个表连接在一起,以便我可以显示Table1中的所有记录并添加Table2中的某些列。
我可以使用
将表连接在一起SELECT Table1.Name, Table1.Address, Table1.TelephoneNumber
FROM Table1
LEFT JOIN Table2
ON Table1.TelephoneNumber=Table2.PhoneNumber
表1有3900条记录,表2有近7百万条
然后我想在Table2中添加(例如)PostTown和PostCode。这样我的查询就会返回
Table1.Name,Table1.Address,Table1.TelephoneNumber,Table2.PostTown,Table2.PostCode
如何使查询仅返回Table1中的所有内容,但显示Table2中的匹配项,其中包含一些匹配项,而不显示其中的匹配项。 Table2.PhoneNumber中有一些空白值,我认为它在我的结果中重复,因为它返回了近一百万行......
答案 0 :(得分:0)
SELECT Table1.Name, Table1.Address, Table1.TelephoneNumber
FROM Table1
LEFT JOIN Table2
ON Table1.TelephoneNumber=Table2.PhoneNumber
WHERE Table1.TelephoneNumber IS NOT NULL
答案 1 :(得分:0)
请尝试以下操作。
SELECT Table1.Name, Table1.Address, Table1.TelephoneNumber FROM Table1
LEFT JOIN Table2 ON Table1.TelephoneNumber=Table2.PhoneNumber
where Table1.TelephoneNumber is not null
答案 2 :(得分:0)
您的数据中有空白(非空):
SELECT Table1.Name, Table1.Address, Table1.TelephoneNumber
FROM Table1
LEFT JOIN Table2
ON Table1.TelephoneNumber = Table2.PhoneNumber
AND Table1.TelephoneNumber != ''
检查NOT NULL
无济于事,因为null不等于null(而空白等于空白)
答案 3 :(得分:0)
SELECT Table1.Name,Table1.Address,Table1.TelephoneNumber,Table2.PostTown,Table2.PostCode 从表1 LEFT JOIN表2 在Table1.TelephoneNumber = Table2.PhoneNumber
识别SELECT语句中所需的所有数据,而不仅仅是表1中的数据。 连接将匹配表之间的正确数据。