mysql - 内部用LIKE Join,有什么问题?

标签 mysql sql inner-join

我有两张 table

Table 'prd_help_zusatz'
ID   Title   ART
1    Text 1  material
2    Text 2  material
3    Text 3  farbe

Table 'prd_produkt'
ID   PRD_material ...
1    [1][2]
2    [2]

prd_produkt 中的 PRD_material[]prd_help_zusatz 的 ID,与选择的 Material 一样多。现在我想给出 prd_help_zusatz 中所有可能的值,这些值是 prd_produkt 使用的 Material 。

我的选择代码

SELECT h.ID 
FROM prd_help_zusatz as h, prd_produkt as p 
WHERE h.ART = 'material' 
  AND p.PRDART = 'uhr' 
  AND h.ID LIKE p.PRD_material 
GROUP BY h.Titel_d 

问题是,PRD_material 上的值不相等。我该如何选择它? .. h.ID LIKE '['p.PRD_material']' 不起作用。

最佳答案

您需要在要查找匹配项的地方使用 % 运算符。如果你想在一列上比较一列,你可以把它放在两边。如果你只想比较左边,你可以把它放在那里。我建议查看此线程以获得更多见解:How to use column name as part of a LIKE statement in a WHERE clause of a JOIN

所以:

SELECT h.ID 
FROM      prd_help_zusatz as h, 
          prd_produkt as p 
WHERE     h.ART = 'material' 
          AND p.PRDART = 'uhr' 
          AND h.ID LIKE '%' + p.PRD_material + '%'
GROUP BY  h.Titel_d 

关于mysql - 内部用LIKE Join,有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31178776/

相关文章:

mysql - 我的 PHP 应用程序可以使用 Heroku 的 ClearDB MySql 资源吗?

c# - 如果存在则删除 SQL 表/如果不存在则创建(在 C# 中)

sql - 在 SQL 连接方面需要帮助

mysql - 如何进行计数查询并连接两个表

mysql - 使用 MySQL 连接从表中获取值

mysql - 用于对一个查询中的时间段内的事件进行计数的 SQL 查询

python - 如何使用python将数据从一个mysql数据库传输到另一个数据库并映射具有不同列名的数据

PHP - 带有 SQL 查询的多个函数

php - 动态执行多个 $_FILES 时更改第一个输入字段名称

mysql - 在表中查找过去几周没有事件的记录