在我正在创建的系统上工作时,我试图在我的项目中使用以下查询:
SELECT
topics.id,
topics.name,
topics.post_count,
topics.view_count,
COUNT( posts.solved_post ) AS solved_post,
(SELECT users.username AS posted_by,
users.id AS posted_by_id
FROM users
WHERE users.id = posts.posted_by)
FROM topics
LEFT OUTER JOIN posts ON posts.topic_id = topics.id
WHERE topics.cat_id = :cat
GROUP BY topics.id
Run Code Online (Sandbox Code Playgroud)
":cat"由我的PHP代码绑定,因为我正在使用PDO.2是":cat"的有效值.
该查询虽然给我一个错误:"#1241 - 操作数应包含1列"
让我感到困惑的是,我认为这个查询没有问题.选择列,然后从另一个表中再选择两个,然后从那里继续.我只是无法弄清楚问题是什么.
是否有一个简单的解决方法,或其他方式来编写我的查询?
我试图将table1中的数据插入table2
insert into table2(Name,Subject,student_id,result)
select (Name,Subject,student_id,result)
from table1;
Run Code Online (Sandbox Code Playgroud)
table2的关键是student_id.
假设没有任何重复.
我收到错误: MySQL error 1241: Operand should contain 1 column(s)
table2中只有四列.
我尝试运行以下语句:
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION)
SELECT (a.number, b.ID, b.DENOMINATION)
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
Run Code Online (Sandbox Code Playgroud)
根据我的理解,应该从temp_cheques中插入VOUCHER中的每个记录,其ID和DENOMINATION字段对应于BOOK表中的条目(temp_cheques来自数据库备份,我试图以不同的格式重新创建).但是,当我运行它时,我收到一个错误:
Error: Operand should contain 1 column(s)
SQLState: 21000
ErrorCode: 1241
Run Code Online (Sandbox Code Playgroud)
我在SQuirrel中运行它并且没有遇到任何其他查询的问题.我的查询语法有问题吗?
编辑:
BOOK的结构是:
ID int(11)
START_NUMBER int(11)
UNITS int(11)
DENOMINATION double(5,2)
Run Code Online (Sandbox Code Playgroud)
temp_cheques的结构是:
ID int(11)
number varchar(20)
Run Code Online (Sandbox Code Playgroud) 我可以找到很多类似的问题,但对我的问题没有真正的解决方案.
我的SQL查询:
UPDATE ADRESSEN
SET EMAIL = 0
WHERE ID = (SELECT ID, COUNT(ID) AS COUNTER
FROM EIGENSCHAFTEN WHERE Kategorie = "BOUNCE"
GROUP BY ID
HAVING COUNTER = 1)
Run Code Online (Sandbox Code Playgroud)
我收到的错误代码是
#1241 - Operand should contain 1 column(s)
Run Code Online (Sandbox Code Playgroud)
如果我只是在括号中使用查询它的工作原理,结果是
ID | COUNTER
0002159 | 1
Run Code Online (Sandbox Code Playgroud)
我的错误在哪里?非常感谢你的帮助.
子查询是否可以将两个值返回到外部查询?如:
SELECT 1,
(SELECT COUNT(*), MAX(*) FROM test_table WHERE test=123)
FROM another_table
Run Code Online (Sandbox Code Playgroud)
或者有更好的方法吗?
我有带编号范围的客户组(从客户编号到客户编号).
select g.id,
(select count(*), sum(sales)
FROM transactions t1
where t1.customernumber between g.from_customernumber and g.to_customernumber)
from customer_groups g
Run Code Online (Sandbox Code Playgroud)
选择此项后,我收到此错误
ERROR 1241 (21000): Operand should contain 1 column(s)
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?我已经阅读了一些有关此问题的线索,但我没有找到解决方案.
最好的祝福!
SELECT * from campaigns WHERE id not in
(SELECT
e.id_campaign, d.name, d.frequency, d.country, d.referral, d.bid, d.status, COUNT(e.id) AS countcap
FROM campaigns d
LEFT JOIN served e
ON d.id = e.id_campaign
WHERE
d.status = 'Active'
GROUP BY e.id_campaign
HAVING
countcap < d.frequency)
Run Code Online (Sandbox Code Playgroud)
我得到错误"操作数应该包含1列" - 但我需要COUNT(e.id)
String sql = "SELECT (Employee_name, Password) FROM employee WHERE (Employee_name = '"+name+"' AND Password = '"+password+"')";
Run Code Online (Sandbox Code Playgroud)
并在 JSP java.sql.sqlexception insert operand should contains 1 columns(s) 中出现以下异常
请帮忙。
INSERT INTO People(Track_id_Reference)
SELECT track_id
FROM Tracks
WHERE track_title IN (SELECT tracktitle
FROM top100
WHERE artist IN (SELECT p.People_name, t.artist
FROM People AS p
RIGHT JOIN top100 AS t
ON
p.People_name=t.artist
UNION DISTINCT
SELECT p.People_name, t.artist
FROM People AS p
LEFT JOIN top100 AS t
ON
p.People_name=t.artist));
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
ERROR 1241 (21000): Operand should contain 1 column(s)
子查询哪个联合会返回2列.我怎样才能解决这个问题?
我只是尝试以下查询:
SELECT *,
(
SELECT count(*)
FROM users
where users.email=calls.email
) as ureg,
(
SELECT sum(qty)
FROM product
where product.owner in
(SELECT *
from users
where users.email=calls.email)
) as pop
FROM calls
order by calls.data desc
LIMIT 0,20
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
#1241 - Operand should contain 1 column(s)
Run Code Online (Sandbox Code Playgroud)
我该如何修复我的查询?
编辑:
SELECT * from users where users.email=calls.email
改为
SELECT id from users where users.email=calls.email
它的工作原理是因为查询id
在用户中存在的一堆s中搜索product.owner