Supplier
Requestor
Expected RESULTS
SQL代码:
SELECT T2."Fullname",T2."Town", T2."Age", T1."Surname"
FROM "Requestor" as T2
LEFT JOIN "Supplier" as T1
ON (T2."Fullname" LIKE '%' + T1."Name" + '%')
ORDER BY T2."Fullname" ;
不确定为什么Surname的值没有被填充或传递到预期表中?
INNER JOIN、WILD、EXIST SQL条件
2条答案
按热度按时间velaa5lx1#
使用
||
将两个字符串合并为一个字符串Demo here
xggvc2p62#
您没有说明您想知道的是什么,所以我假设您想知道如何修复JOIN查询。
由于
LEFT JOIN
显示了来自T2的所有行,因此T1不具有匹配这个相当特殊的JOIN
条件的行是唯一合乎逻辑的。你应该用外键连接两个表-就像T2中每个有昵称的行都需要有一个外键列,其中包含你想连接的另一个表的ID。因此,请尝试修复表的结构,并更多地了解JOIN的工作方式。例如,你应该有一个JOIN语句,如下所示:
在
ON id = T1.id
行中,第一个id
提到了T2的ID。如果您有一个中间表来帮助将两个表连接在一起就更好了,它将包含两个实体之间的操作历史-每个实体都有几个操作历史。就像在这个structure of a decent schema中一样。您只能想象可以为这个表创建多少个VIEW
。我鼓励你深入学习JOIN在SQL中是如何工作的。它们在真实的世界中相当常见,大多数关于SQL的困难工作都围绕着JOIN,所以一旦你有了足够的经验,知道如何以及何时使用它们,它会让你的生活方式更容易。你还应该对你的表的结构有一个水晶般清晰的理解,知道如何连接它们。