嗨(抱歉标题不好),
我在MySQL数据库中有两个表,我们可以调用它们CarMake
和CarModel
。两个表都有两个字段ID:int(11)
和Description:varchar(100)
。例如:
CarMake CarModel
ID Description | ID Description
-----------------------------------------------------
123456 Honda | 12345678 Accord
234567 Toyota | 12345665 Civic
369258 Lexus | 23456789 Prius
每个汽车型号共享其Make的ID的前6位数字。在这个例子中,Accord和Civic都与本田共享ID的前6位数字,因此它们是本田车型。
现在,我要做的是从CarMake中选择所有行不在CarModel中有一条记录,其中ID的前6位数匹配。在这个例子中,我的查询应该从CarMake返回Lexus行,因为它在CarModel中没有匹配的行。
到目前为止,我所尝试过的任何事情都没有达到我想要的效果,所以我在这里发帖。
非常感谢任何帮助!
编辑:在zerkms的帮助下解决
SELECT * FROM CarMake
LEFT JOIN CarModel
ON CarModel.ID LIKE CONCAT(CarMake.ID, '%')
WHERE CarModel.ID IS NULL;
跟进问题: