2014-02-27 3 views
0

MySQL 데이터베이스 테이블에 저장된 다음 5 개의 예정된 날짜를 나열하는 HTML 테이블을 만드는 데 도움이되는 abit를 찾고 있습니다. 나는이 개 문자열 컬럼 & 10 개의 서로 다른 날짜 열이있는 테이블이 있습니다동일한 테이블의 여러 열에서 날짜를 선택하십시오

내가하고 싶은 것은 다음과 같은 헤더가있는 HTML 테이블을 만들 수 있습니다 : 마레, 치료 & 날짜

날짜 열에는 5 개의 날짜가 채워집니다.

치료 열이 마레 열이 그 암말 문자열로 채워집니다 날짜

의 MySQL의 컬럼 이름으로 채워집니다는 행을 내가 쓰기 위해 노력하고 있어요

날짜 각 열에서 날짜를 가져 와서 오늘 날짜보다 큰지, 날짜순으로 정렬하여 5로 제한 하는지를 확인하는 SQL 문.

내가 지금까지 가지고있는 것은 다음과 같다 :

SELECT covering, 
ovulation, 
pregnancy, 
scanfortwins, 
heartbeatscan, 
antiabortion1, 
antiabortion2, 
antiabortion3, 
removestitches, 
duedate 
FROM `dates` 
WHERE 'covering' 
    AND 'ovulation' 
    AND 'pregnancy' 
    AND 'scanfortwins' 
    AND 'heartbeatscan' 
    AND 'antiabortion1' 
    AND 'antiabortion2' 
    AND 'antiabortion3' 
    AND 'removestitches' 
    AND 'duedate' >= Curdate() 
    ORDER BY Year(date) DESC, 
    Month(date) DESC, 
    Day(date) DESC 
    LIMIT 5; 

나는 훨씬

+0

1. 정상화 – Strawberry

+0

보기 정규화에 대해 살펴 보았지만 무엇을 해야할지 확실하지 않습니다. – user3037918

+0

정규화 된 설계에서는 (치료) 날짜에 대해 하나의 열만 있습니다. – Strawberry

답변

0

을 이해할 수있을 것이다 HTML 테이블을 생성 약간의 도움을받을 수 있다면 다음과 같이 UNION 하위 쿼리에서 선택하십시오 :

SELECT * 
FROM 
(
    SELECT ovulation AS `Date`, 'ovulation' AS Treatment, Mare 
    FROM `dates` 
    WHERE ovulation > DATE() 
    ORDER BY ovulation ASC 
    LIMIT 5 
    UNION 
    SELECT pregnancy AS `Date`, 'pregnancy' AS Treatment, Mare 
    FROM `date` 
    WHERE pregnancy > DATE() 
    ORDER BY pregnancy ASC 
    LIMIT 5 
    ... 
) AS x 
ORDER BY x.`Date` ASC 
LIMIT 5; 
+0

감사합니다. 조금만 조정하면됩니다. 그냥 개별 열기 및 닫기 괄호 안에 각 선택 문을 배치했다, 도와 줘서 고마워. :) – user3037918

관련 문제