0

現在、あるテーブルのすべての行を取得するクエリに取り組んでいますが、他のテーブルの情報は限られています。

私はこのクエリで作業しようとしました:

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) プライマリ 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

4

2 に答える 2

2

確かに、2つの発行元が同じID、名、姓、および会社を共有することはできません!!!

SELECT t.uid
     , t.cid
     , t.id 
  FROM tracking t
  JOIN publishers p
    ON p.id = t.uid;
于 2013-01-29T16:29:35.120 に答える
0

DISTINCT(pidpfirstnameplastnamepcompany

問題です。括弧を削除します。

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

これにより、クエリが機能するようになります...ただし、これに個別を使用する必要がある場合は、データ構造またはクエリに何か問題がある可能性があります。

于 2013-01-29T16:39:22.257 に答える