MySQL-具有RLIKE和GROUP BY的UNION SELECT-无法插入INNER JOIN

微核

我创建了一个mySQL查询,以按相关性搜索单词和结果(Sortkey)。例如,如果我搜索“测试词”,我的查询将看起来像这样(它像一个超级按钮一样起作用):

SELECT * 
FROM (  SELECT *, 1 as SortKey 
        FROM equipments 
        WHERE (
            DESCRIPTION RLIKE '[[:<:]]test word[[:>:]]' 
            OR EQUIPMENT_ID RLIKE '[[:<:]]test word[[:>:]]' 
            OR CATEGORY RLIKE '[[:<:]]test word[[:>:]]'
        )

        UNION SELECT *, 2 as SortKey 
        FROM equipments 
        WHERE (
                (DESCRIPTION RLIKE '[[:<:]]test[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]test[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]test[[:>:]]' OR 
                DESCRIPTION RLIKE '[[:<:]]tests[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]tests[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]tests[[:>:]]') 

                AND

                (DESCRIPTION RLIKE '[[:<:]]word[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]word[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]word[[:>:]]' OR 
                DESCRIPTION RLIKE '[[:<:]]words[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]words[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]words[[:>:]]')
            )

        UNION SELECT *, 3 as SortKey 
        FROM equipments 
        WHERE (
                (DESCRIPTION RLIKE '[[:<:]]test[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]test[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]test[[:>:]]' OR 
                DESCRIPTION RLIKE '[[:<:]]tests[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]tests[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]tests[[:>:]]')
                ) 
                OR (
                (DESCRIPTION RLIKE '[[:<:]]word[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]word[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]word[[:>:]]' OR 
                DESCRIPTION RLIKE '[[:<:]]words[[:>:]]' OR 
                EQUIPMENT_ID RLIKE '[[:<:]]words[[:>:]]' OR 
                CATEGORY RLIKE '[[:<:]]words[[:>:]]')
            )

) T1 GROUP BY EQUIPMENT_ID ORDER BY `SortKey` ASC

因此,正如我所说,它可以工作,但是我想在查询中插入INNER JOIN,然后尝试将其放置在任何地方,但没有任何效果。通常,要显示所有结果而不寻找关键字,我使用此查询(再一次,它可以正常工作):

SELECT
    `equipments`.`DESCRIPTION`,
    `equipments`.`EQUIPMENT_ID`,
    `equipments`.`CATEGORY`,
    `live_data`.`SERVICE`,
    `live_data`.`HOURS` 
FROM equipments 
INNER JOIN customers ON `customers`.`EQUIPMENT_ID` = `equipments`.`EQUIPMENT_ID`
LEFT JOIN live_data ON `live_data`.`EQUIPMENT_ID` = `equipments`.`EQUIPMENT_ID`
WHERE `customers`.`customer_id` = 1

我需要插入INNER JOIN还要添加WHERE语句以仅搜索客户的设备。请帮我!

托尼·霍普金森
select innerresult.* From
( Insert your query here ) innerresult
inner join customers On customers.equipment_id = innerresult.equipment_id
Where customers.customer_id = 1

我认为应该这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL JOIN UNION的结果

来自分类Dev

MYSQL SUM和INNER JOIN

来自分类Dev

具有GROUP BY和汇总功能的多个INNER JOIN

来自分类Dev

MySQL INNER JOIN具有不同的列名

来自分类Dev

有条件的MYSQL SELECT JOIN

来自分类Dev

mySQL UNION和LIMIT具有一个SELECT优先级

来自分类Dev

MySQL UNION SELECT缺少字段

来自分类Dev

MySQL UNION SELECT和IN子句

来自分类Dev

带有LEFT JOIN的MySQL SELECT意外将NULL插入每个分区的第一行

来自分类Dev

如何从INFORMATION_SCHEMA.COLUMNS和CROSS APPLY TABLE进行UNION / LEFT JOIN / INNER JOIN结果?

来自分类Dev

MySQL JOIN UNION的结果

来自分类Dev

关于UNION和MySQL中的JOIN

来自分类Dev

MySQL UNION ALL与LEFT JOIN

来自分类Dev

如何使用主查询中的LEFT JOIN和子查询中的INNER JOIN优化MySQL SELECT查询?

来自分类Dev

MySQL-SELECT * WHERE Dates有效,SELECT SELECT&INNER JOIN WHERE Dates不起作用

来自分类Dev

mysql查询与Join和union all

来自分类Dev

带有INNER JOIN的SQL SELECT错误

来自分类Dev

有条件的MYSQL SELECT JOIN

来自分类Dev

Mysql UNION SELECT缺少字段

来自分类Dev

MySQL UNION SELECT和IN子句

来自分类Dev

将嵌套的SELECT重写为INNER JOIN MySQL

来自分类Dev

结合MySQL表与查询UNION或JOIN?

来自分类Dev

在MySQL中通过SELECT INNER JOIN SELECT进行选择

来自分类Dev

在继承案例中使用 UNION 和 JOIN - MySQL

来自分类Dev

MySQL GROUP BY 和 INNER JOIN - 按加入的字段分组

来自分类Dev

Mysql Join Union 按日期查询

来自分类Dev

禁用 MySQL 的 UNION SELECT 查询

来自分类Dev

具有多个 SELECT 和 GROUP BY 的 MySQL

来自分类Dev

“INNER JOIN 表”和“INNER JOIN(SELECT 表)”之间的区别?