2016-10-22 11 views
1

を使用してグループ化するには、テーブルから値を取得します。私は、重複する値がtable.Iに存在する場合、テーブル、グループ、それをから値を取得するために、SQLクエリを必要とする以下の私のテーブルを説明しています。SQLクエリは、私は1人の助けを必要とPHPとMySQL

db_basic:ここ

id  name_id  name  date1    date2 

1  60  aaa  2016-10-22  2016-10-26 

2  60  aaa          

3  62  ccc         

一部の行はdate1 and date2列blank.Iこの$date=2016-10-22 .Iような入力を持った状態$date=2016-10-22を使用してname_id and name値はdate1 and date2の間で嘘であるフェッチする必要があります。任意name_id行がdate1 and date2列がある場合、ここで私の状態はまた、任意の行は、それらがどの入力と比較せずにフェッチする必要がありdate1 and date2列の値を持たない.IF入力日付($date=2016-10-22)を比較してフェッチされるいくつかの値を有します。私は以下の質問を説明しています。 date1 and date2が、それは他の賢明な、それは比較せずにデータベースからデータをフェッチします比較する値を持っている場合

$sql="select * from db_basic where date1 <='".$date."' and date2 >= '".$date."' and date1 !='' and date2 !='' group by name_id"; 

しかし、このクエリを使用して、私はtable.My状態からの最後の行の値を取得することはできませんです。私を助けてください。

+0

この$ sqlを=を試みる使用 "db_basicから選択*どこ日付1 <= '"。$日付。 " 'とdate2の> ='"。$日付。 "」 !と日付1 =「」!とdate2の=「」NAME_ID組合によってグループのすべての選択* db_basicどこから日付1 =「」とdate2の=「NAME_IDによって」グループ「; – JYoThI

+0

これを回答セクションに投稿できますか?その仕事はあなたが予想通り、私は答え – subhra

+0

は、最初にこれを試してみてください。その作業.Thankあなたを。 – JYoThI

答えて

0
$sql="SELECT * FROM `db_basic` WHERE `date1` <='$date' AND `date2` >= '$date' AND `date1` IS NOT NULL AND `date2` IS NOT NULL GROUP by `name_id`;"; 
0

だけUNION ALL

$sql="select * from db_basic where date1 <='".$date."' and date2 >= '".$date."' and date1 !='' and date2 !='' group by name_id union all select * from db_basic where date1 ='' and date2 ='' group by name_id "; 
+0

[OK]を、その作業@subhra今後のユーザーの参考のためにその便利な目盛りが、場合。 – subhra

関連する問題