连接具有不同值前缀的表

pxy2qtax  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(508)

我在试着 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:是的

s6fujrry

s6fujrry1#

在mysql中,使用函数 CONCAT(...) 它可以附加字符串和数字,并且与该数据库的不同版本兼容。
您的固定查询是:

SELECT a.id, a.category_name, b.query 
FROM category AS a
INNER JOIN seo_url AS b
ON CONCAT('category_id=', a.category_id) = b.query;

你的table seo_url 字段的值中已包含“category\u id=” query ,因此不需要附加它。
此外,我建议您使用更具代表性的名称来命名表别名,而不是使用 a 以及 b .
希望这能帮你解决问题!

jvlzgdj9

jvlzgdj92#

使用嵌套 REVERSE 具有的函数 + 0 自动“解析”出整数。
查询

SELECT
 REVERSE(REVERSE('category_id=2') + 0)
UNION ALL 
SELECT 
 REVERSE(REVERSE('category_id=21') + 0)

结果

| REVERSE(REVERSE('category_id=2') + 0) |
|---------------------------------------|
|                                     2 |
|                                    21 |

请参见演示http://sqlfiddle.com/#!9/340e01/530号
在查询中使用它。
查询

SELECT a.category_id, a.category_name, b.query 
FROM category AS a
INNER JOIN seo_url AS b
ON a.category_id = REVERSE(REVERSE(b.query) + 0)

结果

| category_id | category_name |         query |
|-------------|---------------|---------------|
|           1 |    Components | category_id=1 |
|           2 |       Laptops | category_id=2 |

请参见演示http://sqlfiddle.com/#!9/ef5781/1号

相关问题