sql에서 a. g. b. 이런씩으로 앞에 붙이는것이 어떤 의미인가요? 정보
sql에서 a. g. b. 이런씩으로 앞에 붙이는것이 어떤 의미인가요?본문
나름대로 찾아봤는데.
당최ㅣ 중복자료가 많아서 답이 뭔지 모르겠습니다.
$sql= "select G.gr_id, G.gr_9, G.gr_subject, B.bo_table, substring_index( bo_subject, ';', 1) bo_subject from $g4[group_table] G inner join $g4[board_table] B using (gr_id) where G.gr_10 > 0 and B.bo_10 > 0 order by gr_10 ASC, bo_10 ASC ";
이런 sql에 문장이 있으면..
앞쪽에 B.bo_table 이런씩인데..
그냥 bo_table이 아니였나요?
a. b. g. 이런씩으로 붙는건 어떤 의미인가요?
아마도 대충 그누보드 자체에 앞쪽에 붙이는 특정 무시기 같은데..
조금 명쾌하게 알고 싶습니다.
$g4[write_prefix] <---를 의미하는건가요?
근데 이넘이 뭘하는지도 사실은 모릅니다.
아니면 제가 sql명령어를 아직 잘 모르거나.. 둘중하나인듯
댓글 전체
$g4[group_table] G
에서 보시면 $g4[group_table]를 G라고 부른다는 것입니다.
G.gr_id는 $g4[group_table]에 있는 gr_id를 지칭하는 것이지요 $g4[group_table]이름을 일일이 다 써주면 너무 길어져 귀찮으니깐 대신 부를수 있는 것을 만드는겁니다.
$g4[write_prefix]는 일종의 설정값인데 기본 세팅으로 사용하셨다면 'g4_write_'가 되겠지요
에서 보시면 $g4[group_table]를 G라고 부른다는 것입니다.
G.gr_id는 $g4[group_table]에 있는 gr_id를 지칭하는 것이지요 $g4[group_table]이름을 일일이 다 써주면 너무 길어져 귀찮으니깐 대신 부를수 있는 것을 만드는겁니다.
$g4[write_prefix]는 일종의 설정값인데 기본 세팅으로 사용하셨다면 'g4_write_'가 되겠지요
? gr_id로 하면 오류가 나는건가요? a. b.은.. 뭐죠?
귀찮으시면.. 제가 이걸 좀 알아볼수 있는 대략의 링크나
'검색어'라도 알려주시면 감사하겠습니다.
여하튼 sql명령어가 아닌건 맞나보군요
귀찮으시면.. 제가 이걸 좀 알아볼수 있는 대략의 링크나
'검색어'라도 알려주시면 감사하겠습니다.
여하튼 sql명령어가 아닌건 맞나보군요
이 쿼리문에 보시면 보드가 2개 나옵니다. $g4[group_table]와 $g4[board_table]죠. 그냥 gr_id라고 하시면 어디에 있는것을 말하는지 몰르기 때문에 $g4[group_table] 테이블의 gr_id항목이라고 불러주는 것이죠. $g4[group_table].gr_id 입니다. 이걸 $g4[group_table] G에서 G라고 단축어를 설정했으므로 G.gr_id라고 해준겁니다.
여기까지는 sql영역입니다.
$g4[write_prefix]같은 설정값은 config.php파일에 있습니다.
여기까지는 sql영역입니다.
$g4[write_prefix]같은 설정값은 config.php파일에 있습니다.
select count(*) as cnt from g4_board_new a, g4_board b, g4_group c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1'
이 쿼리에서 a. b. 붙는건요?
where a.bo_table = b.bo_table c.gr_id
이런식으로 왜 앞에 a. b. c. 이런식으로 나가는거죠?
이 쿼리에서 a. b. 붙는건요?
where a.bo_table = b.bo_table c.gr_id
이런식으로 왜 앞에 a. b. c. 이런식으로 나가는거죠?
sql 문을 공부해보시면 답이 나올거 같은데요..
위에 분들이 말씀하신 것처럼 a는 g4_board_new라는 테이블 말하는 거예요.
아래쪽 where 구문에서 g4_board_new.bo_table 형태로 적으면 눈에 잘 들어오지 않잖아요.
그래서 간단하게 a 라는 단축어로 정의하고 있는 거네요.
sql 문 약간만 보면 바로 이해 가능한 부분이네요.
위에 분들이 말씀하신 것처럼 a는 g4_board_new라는 테이블 말하는 거예요.
아래쪽 where 구문에서 g4_board_new.bo_table 형태로 적으면 눈에 잘 들어오지 않잖아요.
그래서 간단하게 a 라는 단축어로 정의하고 있는 거네요.
sql 문 약간만 보면 바로 이해 가능한 부분이네요.
일반적으로 테이블끼리 조인이나 비교할때 단축어로 많이 사용한답니다.
sql 구문 꼭 한번 보세요. 조인 부분 ^^
sql 구문 꼭 한번 보세요. 조인 부분 ^^
윗분들 말씀처럼 mysql책을 한번 정독하시는게 빠르실것 같네요 비교적 초반부에 나오는 내용입니다. 지금의 열정이시라면 금방 보실겁니다;;
select count(*) as cnt from g4_board_new a, g4_board b, g4_group c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1'
에서도 마찬가지 입니다.
여기서 a는 from g4_board_new, b는 g4_board, c는 g4_group를 나타내게 되겠죠
where a.bo_table = b.bo_table는
g4_board_new테이블의 bo_table컬럼과 g4_board테이블의 bo_table컬럼 값이 같은 경우에만~ 이란 뜻이 됩니다.
a,b,c 같은 이름은 편하실데로 정하는 것입니다.
select count(*) as cnt from g4_board_new a, g4_board b, g4_group c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1'
에서도 마찬가지 입니다.
여기서 a는 from g4_board_new, b는 g4_board, c는 g4_group를 나타내게 되겠죠
where a.bo_table = b.bo_table는
g4_board_new테이블의 bo_table컬럼과 g4_board테이블의 bo_table컬럼 값이 같은 경우에만~ 이란 뜻이 됩니다.
a,b,c 같은 이름은 편하실데로 정하는 것입니다.
감사합니다. join부분을 보면 되는거죠..
워낙에 공부를 등한시 하다보니 ^^;;
워낙에 공부를 등한시 하다보니 ^^;;
저랑 똑같군요;;; 저도 공부를 멀리 한답니다 ㅡ,.ㅜ
a.b 등등은 테이블 별칭이에요.