0
私は 'publisher'と 'magazine'という2つのテーブルからデータを取得しようとしています。私は出版社を掲載しており、「雑誌」の欄には雑誌の行数を表示したいと考えています。結果を複製するMySQL UNION
(
SELECT
p.id as id,
p.publisher as publisher,
p.flag as flag,
p.visits as visits,
IF(p.magazines>0,COUNT(distinct m.id),0) AS magazines
FROM publisher p, magazine m
WHERE m.publisher = p.id
GROUP BY p.publisher
)
UNION
(
SELECT
p.id as id,
p.publisher as publisher,
p.flag as flag,
p.visits as visits,
p.magazines as magazines
FROM publisher p
GROUP BY p.publisher
)
ORDER BY publisher
をしかし、私は、結果として得られることは、このようなものです:私はこのコードを使用していますが、ご覧のよう
ID Pub Magazines Visits 7 Pub7 1 2 7 Pub7 15 2 5 Pub5 0 4 4 Pub4 0 3 3 Pub3 2 26 2 Pub2 2 13 1 Pub1 9 18 6 Pub6 1 1
は、最後のレコードが二回表示され、何らかの形で雑誌の集計を持っています。私は何がSQL構文で間違っているのか分からない、何とかこれを解決するのを助けてくれる? ありがとうございます。
これは私の問題を解決しました。実際、LEFT OUTER JOINはそれを解決しましたが、私はそれが簡単なことを認識しませんでした。ありがとうございました。 – Ikzer