SQL查询返回“操作数应包含1列”

时间:2013-01-29 16:24:26

标签: mysql distinct mysql-error-1241

我正在处理一个查询,该查询将包含一个表中的所有行,但只有来自另一个表的有限信息。

我尝试过使用此查询:

SELECT `t`.`uid`, `t`.`cid`, `t`.`id` FROM `tracking` as `t`
JOIN (SELECT DISTINCT(`p`.`id`, `p`.`firstname`, `p`.`lastname`, `p`.`company`) FROM `publishers` as `p`) as `p`
ON `p`.id = `t`.uid

但是,我收到了主题标题中的错误。

谁能看到我在这里做错了什么?

编辑:

跟踪结构: id int(11)primary ai,cid int(11),uid int(11)。

发布商的结构: id int(11)primary ai,firstname varcher(60),lastname varchar(60),company varchar(100)。

示例: 出版者 id 1,名字NIKOLAJ,姓JEPSEN,公司APECHO id 6,名字ROBERT,姓氏SCOTT,公司FLAPJACK LTD

跟踪 id 1,cid 1,uid 1; id 2,cid 1,uid 6; id 3,cid 3,uid 1

2 个答案:

答案 0 :(得分:2)

肯定没有两个发布商可以共享相同的ID,名字,姓氏和公司!!!

SELECT t.uid
     , t.cid
     , t.id 
  FROM tracking t
  JOIN publishers p
    ON p.id = t.uid;

答案 1 :(得分:0)

DISTINCT(pidpfirstnameplastnamep。{{1 }})

是问题所在。删掉括号:

company

这应该允许查询工作...但是,如果你必须使用distinct,那么你的数据结构或查询可能还有其他问题。