私は顧客と契約の2つのテーブルを持っています。それらの共通鍵はcustomer_idです。架空のビジネスが顧客と契約しているかどうかを表すために、これら2つの表をリンクする必要があります。MAXの日付と顧客IDに基づいてデータを取得します
顧客 - >契約テーブルには1対多の関係があり、顧客は過去の契約を記録することができます。私は最新のものが欲しい。これは現在、自動的にインクリメントされるcontract_idによって処理されます。
私のクエリは、customer_idとそのcustomer_idのmax contract_idに基づいて契約データを取得することになっています。
私のクエリは、現在、次のようになります。
SELECT * FROM(
SELECT co.*
FROM contracts co
LEFT JOIN customers c ON co.customer_id = c.customer_id
WHERE co.customer_id ='135') a
where a.contract_id = MAX(a.contract_id);
答えはおそらく途方もなく明らかであると私はちょうどそれを見ていませんよ。
この2つの簡単な手順を実行することをお勧めします。1.まだ実行していない場合は、適切なCREATE文とINSERT文(および/またはsqlfiddle)を指定して、問題をより簡単に再現できるようにします。 2.まだ実行していない場合は、手順1で提供された情報に対応する望ましい結果セットを提供してください。 – Strawberry
dmcoding、私はあなたが 'LEFT JOIN'を逆転させたと思います。 「顧客LEFT JOIN契約」でなければならず、それは関係が0から多く... 1から多くではないことを意味します。 –