返回"操作数应包含 1 列"的 SQL 查询



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

我尝试使用此查询:

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), 姓氏 varchar(60), company varchar(100)。

样本:发行人id 1,名字尼古拉,姓杰普森,公司 APECHOID 6,名字罗伯特,姓斯科特,公司FLAPJACK LTD

跟踪ID 1, CID 1, UID 1;ID 2、CID 1、UID 6;ID 3、CID 3、UID 1

当然,

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

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

DISTINCT( p .idp .firstnamep .lastnamepcompany

是问题所在。 去掉括号:

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

这应该允许查询工作...但是,如果必须为此使用 Distinct ,则数据结构或查询可能存在其他问题。

相关内容

  • 没有找到相关文章