mysql - スケジュールに基づいてデータを取得する

原文 mysql

こんにちは私は次の表を持っています-
Location Schedule

location_idを介したスケジュールに基づいてこのテーブルからcampaign_idを取得したいのですが、現在のスケジュールに従ってcampaign_idが見つからない場合は、デフォルトのcampaign_id(デフォルト> 0)が必要です。私はあなたの助けが必要です。最適化テーブルを提案されたら、テーブルを変更します。

英語が下手でごめんなさい。
答え
テストされていません。私はあなたのためにその助けがいっぱいだと思います

select * from (
               select *,count(*) as cnt,1 as ord from table1 t 
               inner join schedule s on s.location_id=t.location_id 
               and now() between start_date and end_date
               union all
               select *,count(*) as cnt,1 as ord from table1 t 
               inner join schedule s on s.location_id=t.location_id 
               and default_id > 0
             ) as tt where ord= case when (ord=1 and cnt > 0) then 1 else 2 end
関連記事

php - 別のフィールドに基づいてフィールドの出現回数をカウントする

mysql - SQL-AND演算子を使用して複数のWHERE値を照会する方法

mysql - 自動インクリメントのMySQL更新コマンド[重複]

mysql - 縮小との照合を使用する場合のMySQL文字列プレフィックスの一致

mysql - MySQLInstallerConsole.exeとchaning datadirを使用したMYSQL 5.6.21のインストール

php - PHPを使用して複数のリストボックス値がMySQLデータベースに挿入されない

php - as3はPDOを使用してPHPにデータを送信します

php - 前のクエリの値を使用してより多くの結果を取得する

php - php mysql jQueryによる連鎖選択

php - 列の結果を変数に格納する