database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 22958 게시물 읽기
No. 22958
4개의 테이블에서 값 가져오는것 도와주세요...
작성자
김민수
작성일
2005-01-14 14:25
조회수
1,254

안녕하세요...
4개의 테이블이 있습니다.
한화면에서 3개의 테이블은 입력을 하게되어있습니다.
그런데 table1 은 값들은 다른데서 입력된 값이 있다면 값을 오는 방식입니다.
그러니까 table1 은 값이 있을때도 있고 없을때도 있습니다.

그리고 table2 ~ table3 은 하나의 화면에서 모두 입력될경우가 있고 모두 입력안될경우가
있고 하나 혹은 둘개만 입력될수도 있습니다.
이렇게 되면 밑에처럼 signdate 필드에 모두 값이 들어갑니다.
만약 table3 에 입력된 값이 없다면 아무것도 입력이 안되는거이죠...

문제점이 list 화면에서 날짜별로 값을 가져와야 하는데 join 으로는 안되군요...
그 해당되는 날짜의 값 테이블이 없는 것들도 있어니까 쉽게 되지 않네요...
일단 들어가있는 자료를 보면

table1 테이블에 날짜 signdate 20041203 으로 들어가 있는것이 3개 => signdate group by
table 2 테이블에는 날짜 signdate 20041203 으로 들어가 있는것이 3개 => signdate gorup by
날짜 signdate 20050111 으로 들어가 있는것이 1개
table3 테이블에 날짜 signdate 20041203 으로 들어가 있는것이 1개
table3 테이블에 날짜 signdate 20041203 으로 들어가 있는것이 1개

이렇게 되어 있다면
리스트에서

번호 날짜 ... .....
1 20050111
2 20041203

이렇게 나와야 하는데 조인으로 하니까 하나도 나오지 않네요...
제발도와주세요...
select a.signdate,b.signdate,c.signdate,d.signdate from table1 as a left outer join table2 as b on a.signdate=b.signdate left outer join table3 as c on b.signdate=c.signdate left outer join table4 as d on c.signdate=d.signdate group by a.signdate,b.signdate,c.signdate,d.signdate


mysql> select a.signdate,b.signdate,c.signdate,d.signdate from table
1 as a left outer join table2 as b on a.id=b.id left outer join table3 as c on a.id=c.id left outer join table4 as d on a.id=
d.id group by a.signdate,b.signdate,c.signdate,d.signdate;
+----------+----------+----------+----------+
| signdate | signdate | signdate | signdate |
+----------+----------+----------+----------+
| 20041203 | 20041203 | 20041203 | NULL |
| 20041203 | 20050114 | 20041203 | NULL |
+----------+----------+----------+----------+
2 rows in set (0.00 sec)

이런식으로 하니까 이렇게 나요네요 ㅠ,ㅠ 미치겠습니다....
일단 날짜만만 뽑아서 나타내주고 링크는 해당되는 날짜로 뷰를 나타내주면 됩니다...

참고로 호스팅 하는 업체의 mysql 버전이 낮아서 서브쿼리는 되지 않습니다.. ㅠ,ㅠ

table1 테이블 ##########
uid
signdate

table2 테이블 ##########
uid
signdate

table3 테이블 ##########
uid
signdate

table4 테이블 ##########
uid
signdate

이 글에 대한 댓글이 총 1건 있습니다.

안되면  쿼리한 결과 값을 배열로 저장하는 방법 좀 가르쳐주세요.

밑에 처럼하니까 안되네요 ㅠ,ㅠ

 

$result1 = mysql_query("select signdate from $table group by signdate");
$nu1 = mysql_num_rows($result1);
$i = 0;
while($roo1 = mysql_fetch_row($result1)) {
 if($nu1 != '1') {
  //$tp1 = $tp1.$roo1[signdate]."/";
  $a = array($roo1[0]);
 } else if($nu1 == '') {
  $tp = '';
 } else {
  $tp = $roo1[0];
 }
 $i++;
}
echo "tp : " . $a;

나그네여님이 2005-01-14 16:45에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
22962[질문]사용자가 왜 추가가 되지 않는건지 ? [2]
몰라맨
2005-01-15
1840
22961윈도우용 mysql을 리눅스용으로 돌려보려고 하는데. 가능할까요? [1]
이승현
2005-01-14
1024
22960쿼리 도움 부탁드립니다.
JohnBrown
2005-01-14
739
229584개의 테이블에서 값 가져오는것 도와주세요... [1]
김민수
2005-01-14
1254
22957용어와 함수는 어디서 알아볼수있나요?? [1]
김효정
2005-01-14
897
22956MySQL 4.0.18 버전에서 order by에 인덱스가 먹나여?
박영선
2005-01-14
775
22955윈도98se에 4.1.8설치후 완료
용훈
2005-01-14
644
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다