2つのテーブル(左結合)。テーブル1とテーブル2を簡単にするために。SQL Left Join Return最新の行
表1には人とその現在のステータスのリストが含まれています。表2はすべての "招待状"です。すべての人が参加の一環として、現在の "人"のリストを表示してから、LATESTの招待状(表2)を表示するので、テーブル2の1行が返されます。
私はすべて動いています。 ..人が複数の招待状を持っていた場合、その複製を2回繰り返します。私はちょうどそれに制限したい
$sql = "SELECT table1.fieldname as table1fielname table2.fieldname [more fields]
FROM xxx
LEFT JOIN xxx on table1.sharedid=table2.sharedid
WHERE XXX LIMIT 1 ";`
Oboboulsy限界1はそれが想定したことをしません。私は括弧内に追加の文を追加しようとしましたが、正直なところ、すべてを破り、専門家ではありません。
はあなたが唯一table2のから一つのフィールドが必要な場合は –
重複を避けたい場合は、あなたがするように設計されているサブクエリでそれを行うことができDISTINCTおよび/またはGROUP BYを使用します最初に選択して、サブクエリを最新の日付順に並べ替えます。 'SELECT table1.fieldname、(SELECT FIRST table2.invitestatus FROM table2 WHERE table1.shareid = table2.shareid ORDER BY table2.date desc)AS InviteStatus FROM ... WHERE ...' –
@ LudvigRydahlあなたの提案をお寄せいただきありがとうございます。まだそれを動作させるために苦労して - あなたの方法またはあなたが結合を削除すると言っている?それとも? – it05jb