用like做子查询

时间:2013-04-25 12:36:42

标签: mysql subquery

我有以下两张表。如何在表A组合中匹配表B variant_id?

TableA
product_id  combination     ean
1           952_4038        123456789
2           946_3989        101010101

TableB
variant_id  desc
4038        text1
3989        text2 

谢谢!

1 个答案:

答案 0 :(得分:0)

SELECT  a.*, b.*
FROM    TableA a
        INNER JOIN TableB b
            ON a.combination LIKE CONCAT('%', b.variant_ID)

此查询在大型数据库上非常慢。考虑正确规范你的表格。

我建议的表格模式:

表A

  • ProductID(1)
  • IntColumn(952)
  • 组合(4038)
  • Ean(123456789)

表B

  • 组合(4038)
  • DescColumn(text)[不使用保留关键字]

确保在链接字段上有索引。


后续问题:哪个表是主表和从属表?