SELECT * FROM
( SELECT *, 'Free' as board_is FROM es_bd_Free
UNION ALL
SELECT *, 'Sharing' as board_is FROM es_bd_Sharing )
b LEFT JOIN es_boardscrap s ON b.sno = s.bdsno WHERE 1 and s.memNo= 3806
이런 SQL 문이 있습니다..
(고도몰...)
es_ boardscrap 테이블은
위 es_bd_Sharing 게시판과 es_bd_Free 게시판에 글을 스크랩한것들은 모아두는 테이블 입니다.
문제는
예를들어 sharing게시판의 sno가 5인 게시물을 스크랩했는데,
출력되기로는 free게시판의 sno가 5일 게시물도 같이 출력이 됩니다 ㅠ
뭐가 잘못된걸까요?ㅠ
[es_boardscrap 테이블]

[es_bd_free & es_bd_sharing 테이블의 일부]

답변 2개 / 댓글 2개
채택된 답변
+20 포인트
5년 전
es_boardscrap 테이블에 bdsno 말고 어느 테이블의 데이터인지는 구분하는 값이 없나요?
답변에 대한 댓글 1개
5년 전
5년 전
es_ boardscrap 테이블에
스크랩을 할 기준점인 free 와 sharing 에 대한 구분자가 존재해야 합니다.
그것이 숫자로 구분해서 적용하더라도 상관은없으나
sno는 동일한 게시물의 키값이라 , 추가 구분자가 있거나
별도의 키를 구성해야 하는데 후자는 당자 어렵고,
스크랩에 어떤게시물테이블인지를 넣어야죠
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
그런데 free나 sharing 게시시판에는 bdId가 없습니다 ㅠ
대신
SELECT *, 'Sharing' as board_is
요런식으로 해놨습니다...
and s.bdId = board_is
이렇게 조건문을 추가 하니깐 됐습니다!! ㅎ