mysql - 如果什么都找不到,我该如何加入其他事件? MySQL

标签 mysql join

这是我拥有的,但它不起作用。它尝试根据大小加入,如果不...如果它等于 '*'

则加入
INNER JOIN tbl_items ON (
  tbl_items.size = COALESCE(tbl_model.size,'*')
  AND tbl_items.type = COALESCE(tbl_model.type,'*')
  AND tbl_items.category = COALESCE(tbl_model.category,'*')
  AND tbl_items.service = tbl_testTypes.name
)

最佳答案

要加入完全匹配的列或替代字符串,您可以使用类似

的模式
(tbl_items.size = tbl_model.size) OR (tbl_model.size = '*')

如果匹配,则执行 OR 的左侧,否则使用右侧。将每个分组在 () 中。

所以充实你的整个JOIN:

INNER JOIN tbl_items ON (
  ((tbl_items.size = tbl_model.size) OR tbl_model.size = '*')
  AND ((tbl_items.type = tbl_model.type) OR tbl_model.type = '*')
  AND ((tbl_items.category = tbl_model.category) OR tbl_model.category = '*')
  AND (tbl_items.service = tbl_testTypes.name)
)

关于mysql - 如果什么都找不到,我该如何加入其他事件? MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617641/

相关文章:

mysql - 使用 JOINS、ORDER BY 和数据透视表

mysql - 执行计算 SQL

php - 使用 MySQL 随机选择行

MySQL #1064 错误。插入

mysql - 返回产品和产品依赖关系的 SQL

php - MySQL 内部连接更新

java - 为什么我总是出现 SQL 参数索引超出范围异常?

PHP和MySQL选择框

c# - LINQ to SQL 连接和 If 条件

mysql - 使用子查询选择最小值