私は2つのテーブルを照会しています。 1つのテーブルには、写真に登場するプレーヤーが死んでいるかどうかを示すフィールド、名声の殿堂などがあります。追加したばかりのフィールドは「new_flag」と呼ばれます。この写真はGROUP BYがなければ、私の在庫MySQLのヘルプを選択してください。サブクエリ?
に新しいものであるかどうかを示し、結果は私の、GROUP BYでは、このようなもの(いくつかのプレイヤーが一つの製品/写真以上のものを持って注意してください)
name firstname lastname hall_of_fame deceased new_flag
---- --------- -------- ------------ -------- --------
EARL AVERILL SR EARL AVERILL SR Y Y Y
BILL TERRY BILL TERRY Y Y N
BILL TERRY BILL TERRY Y Y Y
BILL TERRY BILL TERRY Y Y N
BOBBY DOERR BOBBY DOERR Y N N
BOBBY DOERR BOBBY DOERR Y N N
を見てしまいますクエリはこのように見えますが、各プレイヤーは複数のレコードを持つ可能性があるため、常に新しいフラグを見つけることはできません。
SELECT CONCAT(a.firstname,' ',a.lastname) AS name,
a.firstname,
a.lastname,
b.hall_of_fame,
b.deceased,
b.new_flag
FROM vm_product_name AS a,
vm_product_new_attribute AS b
WHERE b.hall_of_fame ='Y'
AND a.product_id = b.product_id
GROUP BY CONCAT(a.firstname,' ',a.lastname)
ORDER BY a.lastname,
a.firstname;
問題は、私はまた、彼らは少なくとも持っている場合は、プレイヤーの名前の横に「新」アイコンを追加したい.....私は唯一の各プレイヤーは自分のWebページ上で一度表示したいということですが、 1枚の新しい写真。どのように私はこれを行うことができます任意のアイデア?
これは最適な方法ではありませんが、Joomla/Virtumart拡張機能として構築されており、現時点ではデータベース構造を変更できません。
さておき、あなたが複数の列でグループができるので、 "ちょうど使用し、GROUP BY句でCONCATを使用していないとして...左が代わりに参加するとよいでしょうGROUP BY a.firstname、a.lastname "と入力します。 GROUP BY(WHERE句とORDER BY句だけでなく)の句を使用しないようにする主な理由は、MySQLがインデックスを使用できなくなり、一時的なテーブルを作成してクエリを大幅に遅くする可能性があるためです。 –