MySQL错误:操作数应包含1列

MySQL错误:操作数应包含1列,mysql,mysql-error-1241,Mysql,Mysql Error 1241,我有这个MySQL查询工作 第一个问题: SELECT id FROM users WHERE publisher_set = '1' AND publisher_status = '1' AND publisher_content != '' AND publisher_amount != '0' AND publisher_now < publisher_max AND EXISTS ( SELECT * FROM user_counter WHERE users.id = user

我有这个MySQL查询工作

第一个问题:

SELECT id
FROM users
WHERE publisher_set = '1'
AND publisher_status = '1'
AND publisher_content != ''
AND publisher_amount != '0'
AND publisher_now < publisher_max
AND EXISTS (

SELECT *
FROM user_counter
WHERE users.id = user_counter.publisher_id
)
上面的MySQL查询是从两个表中查找用户id

现在我想使用第二个MySQL查询再次进行比较

第二个问题:

SELECT users.id, publisher_amount, publisher_now, publisher_max, counter
FROM users
INNER JOIN user_counter ON users.id = user_counter.publisher_id
WHERE no = 08123456789
AND counter < publisher_amount
但当我像这样加入所有查询时:

SELECT id
FROM users
WHERE publisher_set = '1'
AND publisher_status = '1'
AND publisher_content != ''
AND publisher_amount != '0'
AND publisher_now < publisher_max
AND EXISTS (

SELECT *
FROM user_counter
WHERE users.id = user_counter.publisher_id
)

AND (
SELECT users.id, publisher_amount, publisher_now, publisher_max, counter
FROM users
INNER JOIN user_counter ON users.id = user_counter.publisher_id
WHERE no =08123456789
AND counter < publisher_amount
)
我得到这个错误:

操作数应包含1列

然后,我尝试使用1列,但结果不是我想要的

我的问题是如何连接第一个和第二个查询?并且不会产生错误


我曾尝试过谷歌搜索,经过多次尝试和错误,这是我能做的最远的查询工作

您可以将第一个EXISTS子句更改为:

and users.id in (select user_counter.publisher_id from user_counter) 

并且在最终查询中存在use。

您也可以这样做:

AND EXISTS (

SELECT user_counter.publisher_id
FROM user_counter
WHERE users.id = user_counter.publisher_id
PS:SQLFIDDLE在我这边不起作用是因为某些原因。否则我会很乐意给你示范的

SELECT id
FROM users
WHERE publisher_set = '1'
AND publisher_status = '1' 
AND publisher_content != ''
AND publisher_amount != '0'
AND publisher_now < publisher_max
AND EXISTS (
select 1 from  user_counter where  users.id = user_counter.publisher_id
    and  no =08123456789
AND counter < publisher_amount
)

假设表用户计数器上没有和计数器。没有模式有点难说

我想您只是在第二个子查询中遗漏了一个EXISTS。无论如何,如果我正确理解您的查询,我认为您可以将您的查询写为:

SELECT
  u.id
FROM
  users u inner join user_counter uc
  on u.id=uc.publisher_id
     and no=08123456789
     and counter < publisher_amount
WHERE
  u.publisher_set = '1'
  AND u.publisher_status = '1'
  AND u.publisher_content != ''
  AND u.publisher_amount != '0'
  AND u.publisher_now < publisher_max

子查询返回的列数超过1列;今天早上,EXISTS与SQL Fiddle之间出现了一些奇怪的问题。现在应该可以工作了,谢谢。