我必须在 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/