我正在处理一个查询,该查询将包含一个表中的所有行,但只有来自另一个表的有限信息。
我尝试过使用此查询:
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
答案 0 :(得分:2)
肯定没有两个发布商可以共享相同的ID,名字,姓氏和公司!!!
SELECT t.uid
, t.cid
, t.id
FROM tracking t
JOIN publishers p
ON p.id = t.uid;
答案 1 :(得分:0)
DISTINCT(p
。id
,p
。firstname
,p
。lastname
,p
。{{1 }})
是问题所在。删掉括号:
company
这应该允许查询工作...但是,如果你必须使用distinct,那么你的数据结构或查询可能还有其他问题。