2009-09-22 2 views
0

저는 학교 웹 사이트를 만들고 있는데 MySQL 결과에 대한 도움이 필요합니다. 나는 체육관이 언제 사용할 수 있는지 알고 싶다. 예 : 2009-09-23부터 2009-09-30까지 바쁘다. 다른 모든 날짜에도 사용할 수있다. 이제 쿼리를 작성했지만 작동하지는 않는다.Mysql 결과 문제

SELECT gym_name from gym, logs WHERE gym.gym_id = logs.logs_id 
    AND (gym.date_busy_from < '2009-09-23' 
    OR gym.date_busy_from > '2009-09-23' 
    AND gym.date_busy_till > '2009-09-30') 

내가 몇 시간 동안 붙어있어 벽을 뚫을 수없는 사람이 있습니까? tnx

+0

이 쿼리가 불완전 보이는 시도, 당신은 적어도 "선택"으로 접두사 필요가 없습니다? 또한 조인 구문은 더 이상 사용되지 않는 다양성입니다. "join"키워드를 사용하는 조인 구문으로 변경해야합니다. – Asaph

+0

테이블 sql과 샘플 데이터를 게시하십시오 – Cesar

+0

이것을 학교 일과 함께 태그해야합니다 –

답변

0

은 varchar 형식 또는 날짜 형식으로 저장된 gym.date_busy_from입니까? 그것은 당신의 비교에 중요합니다. 첫 번째 AND 문 다음에 괄호가 닫히지 않습니다.

+0

신경 쓰지 마세요. , 나는 닫힌 괄호를 본다. 내 생각은 비교 일 것이다. 개인적으로 나는 거기에있는 모든 문장을 자신의 괄호 집합으로 묶을 것입니다. – contactmatt

+0

날짜 형식으로 2 번 편집했는데 보지 못했습니다. 괄호가있어 어딘가에 다른 것을 추가해야합니까? –

1

너의 것. OR 조건은 무엇을합니까? 아니면 당신이 그걸로 무엇을하려고합니까?

SELECT gym_name from gym, logs 
WHERE gym.gym_id = logs.logs_id 
AND (gym.date_busy_from < '2009-09-23' 
OR gym.date_busy_from > '2009-09-23' 
AND gym.date_busy_till > '2009-09-30') 

SELECT gym_name 
FROM gym, logs 
WHERE gym.gym_id = logs.logs_id 
AND gym.date_busy_from < CURDATE() 
AND gym.date_busy_till > DATE_ADD(CURDATE(), INTERVAL 7 DAY) 

또는

SELECT gym_name 
FROM gym, logs 
WHERE gym.gym_id = logs.logs_id 
AND gym.date_busy_from > CURDATE() 
AND gym.date_busy_till < DATE_ADD(CURDATE(), INTERVAL 7 DAY)