正如您在上面的打印屏幕中看到的那样,我想知道是否有可能同时检查两个表中是否有一个东西,如果找到则获得整行(逻辑 1)。没有进行 2 次查询。我需要查看“fajne-to-jest”是否在 table1 或 table2 中,然后获取数据行。我在 2 个查询中这样做......但问题是,是否可以使用一个查询来检查此信息?玛拜别的东西?最有效的方法?最好的方法是什么?
@Gordon Linoff 给了我这个:
select (exists (select 1 from table1 where url = 'fajne-to-jest')) as in_table1,
(exists (select 1 from table2 where url = 'fajne-to-jest')) as in_table2;
最佳答案
这是一个快速的尝试,根本没有测试过:
select
IF(table1.id IS NULL, 0, 1) as table1,
IF(table2.id IS NULL, 0, 1) as table2,
COALESCE(table1.id, table2.id, "NONE") as id,
`master`.url
from
(select 'fajne-to-jest' as url) `master`
left join table1 on table1.url = `master`.url
left join table2 on table2.url = `master`.url
;
应该 始终给出单个行,无论它是在 0、1 还是两个表中找到的。你说 url 是唯一的,所以不需要担心重复,但如果 ID 不匹配,那么这有利于 table1(如果不在任何一个表中,则打印“NONE”)。
关于php - 在数据库中搜索内容 (2) - SELECT - 需要在 2 个表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44395758/