正常に動作している JOIN を使用して 3 つのテーブルからレコードを選択しようとしていますが、SELECT にいくつかの条件を追加する必要がありますが、これはわかりません。私の現在の選択は次のように機能します:
SELECT user.*, address.*, state.* FROM user
LEFT JOIN address ON user.id = address.user_id
LEFT JOIN state ON user.id = state.user_id
ここで、住所と州には複数のレコードを含めることができますが、どちらのテーブルにも、それらがプライマリ レコードであり、それを選択することを示すビット フィールドがあります。ステートメントにを追加しようとしましたWHERE address.state = b'1'
が、プライマリ レコードを持つレコードのみが返されます。理想的には、プライマリ フィールドで並べ替えられた住所/州テーブルから一番上のレコードを選択することで、次の場合にプライマリが選択されます。存在しますが、プライマリがない場合は次のレコードが選択されます。
MySQL 5 でこれを達成するにはどうすればよいですか?