我在试着 join
两个表,但问题是,在第二个表中,与表1中相同的值有一个前缀(此表是在opencart安装-演示数据之后生成的):
Table 1: category
-----------------------------
| category_id | category_name |
|-----------------------------|
| 1 | Components |
| 2 | Laptops |
Table 2: seo_url
------------------------------------------
| seo_url_id | query | keyword |
|------------------------------------------|
| 35 | category_id=1 | components |
| 78 | category_id=2 | laptops |
所以类别的id在列中 category_id
在表1中,它是一个数字,但在表2中,它在列中 query
它的前缀是 category_id=
然后是身份证 x
(如果笔记本电脑x为2)。
有人能帮我理解在这种情况下我是如何加入这张table的吗?
到目前为止我想补充 category_id=
+像这样:
SELECT a.id, a.category_name, b.query
FROM category AS a
INNER JOIN seo_url AS b
ON a.category_id = 'category_id=' + b.query
p、 我试过了 ON 'category_id=' + a.category_id
p、 美国也有 product_id
所以我不知道我能不能 LIKE
但我在想,在找,却找不到办法让它发挥作用。
谢谢您!d:是的
2条答案
按热度按时间s6fujrry1#
在mysql中,使用函数
CONCAT(...)
它可以附加字符串和数字,并且与该数据库的不同版本兼容。您的固定查询是:
你的table
seo_url
字段的值中已包含“category\u id=”query
,因此不需要附加它。此外,我建议您使用更具代表性的名称来命名表别名,而不是使用
a
以及b
.希望这能帮你解决问题!
jvlzgdj92#
使用嵌套
REVERSE
具有的函数+ 0
自动“解析”出整数。查询
结果
请参见演示http://sqlfiddle.com/#!9/340e01/530号
在查询中使用它。
查询
结果
请参见演示http://sqlfiddle.com/#!9/ef5781/1号