我听说过几种实现标记的方法; 使用TagID和ItemID之间的映射表(对我有意义,但它是否可以缩放?),向ItemID添加固定数量的可能TagID列(似乎是一个坏主意),将标记保留在逗号分隔的文本列中(声音疯了,但可以工作).我甚至听过有人推荐稀疏矩阵,但那么标签名称如何优雅地增长?
我错过了标签的最佳做法吗?
使用Sequel Pro,我有这两个表:
Table1
Name Year x y
John Smith 2010 10 12
Adam Jones 2010 8 13
John Smith 2011 7 15
Adam Jones 2011 9 14
etc.
Run Code Online (Sandbox Code Playgroud)
和
Table2
Name Year z
Smith John Smith John 2010 27
Jones Adam Jones Adam 2010 25
Smith John Smith John 2011 29
Jones Adam Jones Adam 2011 21
etc.
Run Code Online (Sandbox Code Playgroud)
基本上,表2中的名称仅与姓氏和名字切换相同,然后重复一次.因此表1中的名称在表2的名称中找到("John Smith"在"Smith John Smith John"中找到).我想执行内部联接并将Table2的z值连接到Table1的其他值并得到如下内容:
Name x y z
John Smith 10 12 27
Adam Jones 8 13 25
Run Code Online (Sandbox Code Playgroud)
为此,我运行了这个查询:
Select Table1.*, …
Run Code Online (Sandbox Code Playgroud) 我只是想知道是否有办法用变量的%符号来实现.我基本上希望区域包含市场和任何其他字符以便匹配.一个例子是如果REGION = ALBANY-SXSX-TVTV和市场= ALBANY,我希望区域和市场之间存在匹配.
select a.*, b.Code,b.HHLDS
from Master1 as a left join map as b
on a.region like "b.market%"; /*not sure about this*/
Run Code Online (Sandbox Code Playgroud)