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