回答編集履歴

2 文章追加

ao_love

ao_love score 428

2015/12/24 18:15  投稿

単純に"res"というテーブルがないからではないでしょうか?
`costomer cos` はちゃんと別名指定しているのに、resの指定はないように見えます。
もし`res`というテーブルが存在しているのでしたら見当違いですので無視してください^^;
1 コードの削除

ao_love

ao_love score 428

2015/12/24 18:14  投稿

単純に"res"というテーブルがないからではないでしょうか?
`costomer` はちゃんと別名指定しているのに、resの指定はないように見えます。
おそらく`costomer_reservation`がresなのだと思うので、以下のようにすれば動くのではないかと思います。
```sql
SELECT cos.*, res.* FROM costomer cos
INNER JOIN
(SELECT * FROM costomer_reservation r1
 WHERE NOT EXISTS
  (SELECT * FROM costomer_reservation r2
    WHERE
        r1.customer_id     = r2.customer_id
    AND r1.reservation_date < CURRENT_DATE
    AND r1.reservation_date < r2.reservation_date
    AND r1.company_id      = 79
    AND r1.delete_flag     = false
   )
 ) costomer_reservation res ON cos.customer_id = res.customer_id
 WHERE
 (cos.company_id = 79) AND (cos.delete_flag = false) AND (res.delete_flag = false)
```
`costomer cos` はちゃんと別名指定しているのに、resの指定はないように見えます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る