0

データベースに 2 つのテーブルがあります。プロファイルのリスト (コード例のテーブル b) があります。2 つ目は、プロファイルが更新されたときの記録を含むログ テーブル (コード例のテーブル a) です。

サイト上のすべてのプロファイルを取得するクエリを実行したいと考えています。一部のプロファイルは更新されていないため、ログ テーブルにレコードがありません。タイムスタンプが 0 のプロファイルも表示する必要があります。

次のコードは、両方のテーブルに ID が存在する行のみを返します。

SELECT b.id, b.name, b.linkname, IFNULL(MAX(a.date),0) as lastupdate
FROM links a, list b
WHERE b.id=a.id

プロファイルの完全なリストと、プロファイルが存在する最新のタイムスタンプと、存在しない場合は 0 のタイムスタンプを取得するにはどうすればよいですか?

前もって感謝します。これが些細なことではないことを願っています。私はたくさん検索してきましたが、例が見つかりませんでした。

4

1 に答える 1

0

LEFT JOINデータを取得するために使用します..データの繰り返しを避けるために使用します..単一のプロファイルにGROUP BY複数のエントリがあるため..log table

SELECT b.id, b.name, b.linkname, IFNULL(MAX(a.date),0) as lastupdate
FROM list b
LEFT JOIN links a ON (a.id=b.id)
GROUP BY b.id;
于 2013-02-15T11:54:23.667 に答える