Mysql 嵌套子查询中的错误
我对MySQL中的子查询函数感到非常困惑 在我的示例中,我使用了3个表: adr包含地址 adr_acc包含有权访问地址的组或用户 usr_grp包含属于组的用户Mysql 嵌套子查询中的错误,mysql,subquery,mysql-error-1054,Mysql,Subquery,Mysql Error 1054,我对MySQL中的子查询函数感到非常困惑 在我的示例中,我使用了3个表: adr包含地址 adr_acc包含有权访问地址的组或用户 usr_grp包含属于组的用户 select * from adr where adr.adr_id in (select ac1.adr_id from adr_acc as ac1 where ( (ac1.acc_type = 'U' and ac1.acc_id = '".$s['user']."') or
select * from adr where
adr.adr_id in
(select ac1.adr_id from adr_acc as ac1 where
(
(ac1.acc_type = 'U' and ac1.acc_id = '".$s['user']."') or
(ac1.acc_type = 'G' and ac1.acc_id in
(select ug1.grp_id from usr_grp as ug1 where ug1.usr_id = '".$s['user']."')
)
)
)
我得到一个错误:
1054-在/ALL/ANY子查询中的未知列“adr.adr\u id”
我错过了什么?argggggggggggggggg-我很愚蠢,很抱歉问了这么愚蠢的问题
SELECT *
FROM adr
WHERE adr.id IN(
SELECT ac1.adr_id
FROM adr_acc AS ac1
WHERE (
( ac1.acc_type = 'U' AND ac1.acc_id = '".$s[' USER ']."' )
OR (ac1.acc_type = 'G' AND ac1.acc_id IN (SELECT ug1.grp_id FROM usr_grp AS ug1 WHERE ug1.usr_id = '".$s[' USER ']."')
)
))
这是正确的查询。您能发布相关列定义吗?创建表格如果不存在adr id varchar20 collate latin1\u german1\u ci NOT NULL,创建表格如果不存在adr\u acc adr\u id varchar20 collate latin1\u german1\u ci NOT NULL,acc_id varchar20 collate latin1_german1_ci NOT NULL,主键adr_id,acc_类型,acc_id创建表如果不存在usr_grp usr_id varchar20 collate latin1_german1_ci NOT NULL,grp_id varchar20 collate latin1_german1_ci NOT NULL,主键usr_id,grp_id