join - 使用连接查询、where 和 like 子句使用三个键进行搜索的查询
问题描述
我正在后端进行搜索操作,所以我尝试了一个查询。我的要求是用户可以使用(ip,实例名称,虚拟机名称)进行搜索 - 如果他/她搜索,他们应该使用这三个中的任何一个获取虚拟机名称。这些与 4 个表相关,我的查询是:
<pre>select cim.name as vm
from ci_master cim
join
ci_attribute_values cav on cim.id = cav.ci_master_id
join
ci_attributes cia on cav.ci_attributes_id=cia.id
join
ci_category_master ccm on cim.ci_category_master_id=ccm.id
where ccm.name='Virtual Machine'
and ((cia.name='IP') or (cia.name='Instance Name'))
and cim.name like 'comm%';
select distinct concat(cim.name,',',cav.ci_attribute_value) as vm
from ci_master cim
join
ci_attribute_values cav on cim.id = cav.ci_master_id
join
ci_attributes cia on cav.ci_attributes_id=cia.id
join
ci_category_master ccm on cim.ci_category_master_id=ccm.id
where ccm.name='Virtual Machine'
and cia.name in ('IP','Instance Name')
and ((cim.name) or (cav.ci_attribute_value) like '%comm%');
select distinct concat(cim.name,',',cav.ci_attribute_value) as vm
from ci_master cim
join
ci_attribute_values cav on cim.id = cav.ci_master_id
join
ci_attributes cia on cav.ci_attributes_id=cia.id
join
ci_category_master ccm on cim.ci_category_master_id=ccm.id
where ccm.name='Virtual Machine'
and cia.name in ('IP','Instance Name')
and ((cim.name) or (cav.ci_attribute_value) like '%comm%');
</pre>
我已经尝试了所有这些查询,但没有找到正确的解决方案。
解决方案
推荐阅读
- html - 在最小宽度无响应背景中居中徽标
- java - 将现有 gradle 项目导入 IntelliJ IDEA 时出错
- c# - 使用 Caliburn.Micro 在 MVVM WPF 中绑定
- php - Laravel Artisan 命令 - “找不到类”
- reactjs - 如何为 React Gutenberg 属性分配 iframe url 查询参数值
- javascript - 使用 HtmlWebackPlugin 时如何在里面添加某些脚本标签和标签
- css - CSS。定位和溢出
- drupal-8 - 如何在 Drupal 8 中创建和保存用户配置文件字段?
- python - DRF - `write_only=True` 显示在响应模式中
- mysql - SQL 查询为多个 AND 条件返回 0 行