mysql - 使用联接表在多个表中进行单个请求搜索

标签 mysql sql

我必须在 3 个不同的表中搜索一个术语。 这是我的 3 个要求,我只想提出一个。 表为 teledis、afr、software_cache。 如果您愿意,这是我的架构:http://imgur.com/aHqtE5P

SELECT teledis.nameid
FROM teledis 
LIKE vulcain = '%XXX%';



SELECT teledis.nameid
FROM joinafr
    JOIN teledis
        ON joinafr.teledis_id = teledis.idteledis
    JOIN afr 
        ON joinafr.afr_id = afr.idafr
WHERE afr.name LIKE '%XXX%';



SELECT teledis.nameid
FROM softs
    JOIN software_cache
        ON softs.id_soft_cache = software_cache.id
    JOIN joinsoft
        ON softs.idsofts = joinsoft.soft_id
    JOIN teledis
        ON joinsoft.soft_id = teledis.idteledis WHERE software_cache.name LIKE '%XXX';

最佳答案

SELECT teledis.nameid
FROM teledis 
WHERE vulcain LIKE '%XXX%'
UNION
SELECT teledis.nameid
FROM joinafr
    JOIN teledis
        ON joinafr.teledis_id = teledis.idteledis
    JOIN afr 
        ON joinafr.afr_id = afr.idafr
WHERE afr.name LIKE '%XXX%'
UNION
SELECT teledis.nameid
FROM softs
    JOIN software_cache
        ON softs.id_soft_cache = software_cache.id
    JOIN joinsoft
        ON softs.idsofts = joinsoft.soft_id
    JOIN teledis
        ON joinsoft.soft_id = teledis.idteledis WHERE software_cache.name LIKE '%XXX';

关于mysql - 使用联接表在多个表中进行单个请求搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24633541/

相关文章:

php - 在浏览器中显示第一行的最后一个条目

mysql - 足球 SQL 查询 Home- 和 Roadteam 问题

sql - 文件转换 - .mwb 到 .sql 文件

c# - 在 gridview 和数据上添加一个额外的列

php - 查找字符串中的斜杠

MySQL:保留 UNION 中的选择顺序

mysql - SQL 服务器 : how to avoid duplicate data?

java - SQL 删除级联帮助(特定问题)

java - JPA 标准 API : LEFT JOIN for optional relationships

mysql - 如何计算sql中每一行的值