我正在尝试运行此查询。但它显示 1 行或给出超过 1 行的错误查询结果。
select * from abc where id=(select nameid from xyz where name like '%abc%')
帮我。我正在执行一个查询,我从表 abc 中获取姓名、父亲姓名和 schoolid。现在我想通过在其中运行另一个查询来从 table2 中获得学校名称,但始终显示 1
试试这个IN
以获得超过一排
select * from `abc` where id in (select nameid from xyz where name like '%abc%')
使用 IN 获取多于 1 行:
select * from abc where id IN (select nameid from xyz where name like '%abc%');
编辑:
select a.*, x.school_name from abc a left join xyz x on a.id = x.nameid where name like '%abc%';
使用IN
mysql 子句。
SELECT * FROM abc WHERE id IN (SELECT nameid FROM xyz WHERE name LIKE '%abc%')
因为 where 条件只检查一个值,但您将它与子查询返回的数据数组进行比较。
你所做的是
if($value = array(1,2,3))
这将始终返回 false,因此您需要使用能够查看数组并给出结果的东西。
换句话说,比较只会在一次值上执行,one = one
而不是在one = array('one',two)
soIN
子句将在MySQL
.
这应该是
select * from abc where id IN (select nameid from xyz where name like '%abc%')