2016-04-19 11 views
0

これに近い質問がたくさんあることは知っていますが、私の問題は解決していません。Mysqlには1人ないし多くの人が参加する

は私が2 tabels、テーブルAとテーブルB

テーブルAが持っている持っているとしましょう:idと名前を

TableBのは持っています。id、TableA_idと日付

私はテーブルA LEFTがでJOINを取得したいですTableB IFの最新のレコード。

SELECT `TableA`.`id` AS `TableA_ID`, `TableB`.`id` AS `TableB_ID` 
FROM `TableA` 
LEFT JOIN TableB` ON `TableA`.`id` = `TableB`.`id` 

テーブルbから結合するものがない場合でもテーブルAフィールドが必要です。 TableBから参加するものがあれば、私は最新のものを欲しいです。

これはサブクエリで行うことができますが、LEFT JOINする方法があるかどうかを知りたいと思います。

答えて

0
select a.id,b.id from tableA a left join tableB b on a.id = b.id 
order by b.id desc 
+0

これを次のように次のようになりますTableAの項目、およびgroup byはetherを完全には解決しません。 –

+1

日付が関係するDistinct句とMAX()句を使用します。 – Priyanshu

+0

これは解決策になる可能性があります。 –

0

は、私は、MySQLでの適切な構文が何であるかわからないんだけど、私はそれぞれに1つの行をしたいとMSSQLでは、問題を解決することはできません

SELECT `TableA`.`id` AS `TableA_ID`, `new_table_b`.`id` AS `TableB_ID` 
FROM `TableA` 
LEFT JOIN (select id, max(date) from tableB group by id) new_table_b ON `TableA`.`id` = `new_table_b`.`id` 
+0

可能であれば、私が自由にTableBからすべての値を取得できる完全な結合をしたいのです。 –

+0

あなたはあなたが完全な結合を使用する場合はtableAからすべての行をフェッチしたいと思っています。表に一致するID – Pavel

関連する問題