MySQL错误:操作数应包含1列
我有这个MySQL查询工作 第一个问题: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
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之间出现了一些奇怪的问题。现在应该可以工作了,谢谢。