MySQL에서 뭔가를 찾고 있습니다. MySQL 데이터베이스에 '프로젝트'와 '시간 프레임'이 있다고 상상해보십시오. 많은 '시간 프레임'은 각 '프로젝트'에 속할 수 있습니다. '시간대'가 포함 된 표에는 각 프로젝트에 연결되는 ID가 있습니다. 어떤 종류의 '시간대'는 중복되지 않을 수 있습니다 - 이것은 쿼리하는 간단하다 - 내가 이상적으로 다음 반환 싶습니다 -겹침 찾기
SELECT * FROM `timeframes` WHERE end > proposedstart AND start < proposedend
을 그러나 새로운 시간대가 아닌 '프로젝트'에 있지 않을 수 있습니다 그것 (해당 프로젝트에 속한 가장 빠른 '시간 프레임'날짜와 해당 프로젝트에 대한 최신 '시간 프레임'날짜로 정의 됨) - 자체 프로젝트의 두 시간 프레임 사이에 나타날 수 있습니다. 비슷한 형식으로 '시간대'테이블에서 쿼리 할 수있는 방법이 있습니까 ?? 여기
이 설명의 출력mysql> DESCRIBE projects;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| projectID | int(11) | NO | PRI | NULL | auto_increment |
| projectName | varchar(225) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> DESCRIBE timeframes;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| timeframeID | int(11) | NO | PRI | NULL | auto_increment |
| projectID | int(11) | NO | | NULL | |
| timeframeName | varchar(225) | NO | | NULL | |
| timeframeStart | date | NO | | NULL | |
| timeframeEnd | date | NO | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
내가 프로젝트 1이라는 프로젝트 테이블에서 세 가지 프로젝트를 가지고 상상, 프로젝트 2 및 프로젝트 3. 내가 프로젝트 1과 관련된 두 개의 시간대를 상상해 먼저 timeframe1이라는 2014-01-07에 시작하여 2014-03-28에 끝납니다. 두 번째는 2014-04-28에 timeframe2라는 존재이며 2014-07-11에 끝납니다. 또한 프로젝트 3과 관련된 두 개의 시간대가 있습니다. 첫 번째 프로젝트는 2015-09-7에 시작되고 2015-12-11에 끝납니다. 두 번째 캠페인은 2016-01-06에 시작하여 2016-03-18에 끝납니다. 이제 프로젝트 2와 관련된 시간대를 추가하고 싶습니다. 2014-01-07에서 2014-07-11 사이의 날짜 또는 2015-09-07에서 2016-03-18 사이의 날짜가 아닐 수도 있습니다. 따라서 프로젝트 2의 기간이 프로젝트 1 또는 3의 두 시간대 사이에 맞을지라도, 나는 이것이 일어나기를 원하지 않습니다. 예를 들어 프로젝트 2의 모든 기간에 허용되는 값은 2013-12-12에서 2014-01-06, 2014-07-12에서 2015-09-06 또는 일부 좁은 범위입니다. 나는 2014-04-01에서 2014-04-27과 같은 시간대가 프로젝트 2에서 유효하지 않기를 원합니다.하지만 그 날짜는 프로젝트 1에만 유효 할 수 있습니다.
'DESCRIBE project'및 'DESCRIBE timeframes' –
@FrankOlschewski 지금 원래 게시물을 편집하겠습니다. – etoipi
@AdamCoppard. . . 네가 무엇을 요구하는지 알 수 없다. 원하는 샘플 데이터와 결과를 제공 할 수 있습니까? –