2017-06-12 2 views
3

これは私の最初の質問stackoverflowで、私はすぐに私の問題に答えを得ることを願っています。 :)私は他のソースからかなりの時間を探してみましたが、残念ながら実際の答えは見つかりませんでした。SQL 1つのテーブルのすべての列を選択し、別のテーブルの別の列の最大値

だから、私はプロジェクトに取り組んでいると私はSQLに初心者ですから、私はこれを行うことはできません。

私は2つのテーブルがあります:列「ID」と

「顧客」、「名""姓 "(" id "はプライマリキー)
" id "、" Customer "、" entrydate "(" id "はプライマリキー)の"セッション "

"セッション " "は"顧客 "の" id "に関連付けられています。

"Customers"テーブルのすべての列を返すクエリが必要です。これは、コースの各顧客の最新の "セッション"レコードのエントリ日付を示す追加の列が1つあります。 "セッション"テーブルには、想像できるように、個々の "顧客"レコードのレコードが多数ある場合があります。

おかげさまで皆様お返事ありがとうございました。

+0

? Postgres?オラクル? –

答えて

3

私は本当に何かを明らかに不足していることかもしれませんが、これは、SQLチュートリアル https://www.w3schools.com/SQL/sql_groupby.asp

SELECT C.name,c.lastName,MAX(S.entryDate) FROM customers C 
inner join Sessions S ON S.CustomerId=C.Id 
group by C.name,C.lastName 
+0

マーク、あなたは何かが欠けているわけではありません... :)私たちはすべてどこかから出発します。真実を伝えるために、私はサブクエリで勉強した後に動作させることができましたが、あなたのアプローチはずっと簡単です。私は実際にあなたの方法を試してみましたが、私の構文は間違っていました。私はエラーを受けました...今後もあなたの助けが必要になるかもしれません。 :)再び高貴。 –

+0

申し訳ありません@JohnKastana私はそんなことに遭遇するつもりはありませんでしたが、たぶんシンプルなショッピングカート/顧客、注文、配送チュートリアルなどのチュートリアルに従うことでメリットがあります。 SQLを使って作業するときに私が与えることができる最高のアドバイスは、単一のアイテムについて考えるのではなく、セット理論を考えることです。 Googleに値する。 – Mark

1

そのことと同じくらい簡単に見つけるだろう一種本当に基本的なSQLを鳴らします。使用している[DBMS](https://en.wikipedia.org/wiki/DBMS)

SELECT C.id,C.name,c.lastName,MAX(S.entryDate) as lastEntry FROM customers C join Sessions S ON S.CustomerId=C.Id group by C.id

+0

オサフ、ご協力いただきありがとうございます。 –

関連する問題