0

このクエリの何が問題になっていますか。

SELECT * 
FROM families f JOIN family_histories fh ON f.id = fh.family_id
WHERE f.family_status_cat_id = 1422
AND (SELECT hst.created_at
     FROM family_histories hst 
     WHERE hst.family_history_cat_id = 1422 
     AND hst.new_value LIKE '%1422%')
BETWEEN '2010/2/13' AND '2013/3/6'

私は得る-

'where句'の不明な列'hst.new_value'

。しかし、列は存在します!!!

4

2 に答える 2

1

列名がnew_valの場合、以下のクエリが必要です

SELECT * FROM families f
JOIN family_histories fh
ON f.id = fh.family_id
WHERE
 f.family_status_cat_id = 1422 AND
 fh.created_at BETWEEN '2010-02-13' AND '2013-03-06' AND
 fh.family_history_cat_id = 1422 AND
 fh.new_val LIKE '%1422%'

現在クエリにあるものを2番目に選択する必要はありません。Devartが述べたのと同じクエリです。

于 2013-03-06T14:36:43.077 に答える
1

このクエリを試してください -

SELECT * FROM families f
  JOIN family_histories fh
    ON f.id = fh.family_id
WHERE
  f.family_status_cat_id = 1422 AND
  fh.created_at BETWEEN '2010-02-13' AND '2013-03-06' AND
  fh.family_history_cat_id = 1422 AND
  fh.new_value LIKE '%1422%'

これは、あなたの望むことですか?

于 2013-03-06T13:55:12.857 に答える