SQL 쿼리에서 "if-else"또는 "case"를 사용한 적이 없지만 이번에는 필요합니다. 나는 데이터가 두 개의 사용자 간의 경쟁 같은 것을 나타내는 테이블이 있습니다MySQL : 쿼리 내부에 데이터가 있는지 확인하십시오.
//properties of "competition-table
int competitionId
int userId_Contrahent1
int userId_Contrahent2
otherdata....
사용자 그 경쟁에서 하나 또는 다른 contrahent 투표 할 수 있습니다; 투표는 다음과 같이 표현됩니다 :
//properties of vote-table
int voteId
int competitionId
int userId_Voter
int userId_Winner // the user for which this vote counts
otherdata....
분명히 내 웹 응용 프로그램의 모든 주어진 사용자는 주어진 경쟁에 대해 한 번만 투표 할 수 있습니다. 따라서 경쟁에 대한 질문을 할 때 현재 사용자 (현재 세션을 소유하고있는 사용자)가 이미이 경쟁에 투표 한 경우 정보를 갖고 싶습니다. 그래서 경쟁의 다른 모든 속성들에 덧붙여, 나는 "투표"와 같은 키와 "예"또는 "아니오"와 같은 값을 가진 추가 태그를 갖고 싶어합니다.
SELECT competition.*,
If EXISTS (
SELECT * FROM vote WHERE userId_Voter = $currentUserId
AND competitionId = competition.competitionId)
...do something
FROM competition;
가 어떻게이 정확히 MySQL은합니까 : 그래서 내 선택 문은 내 생각의 모양은?
새 열을 만들려면 ALTER TABLE tablename ADD cloumnname tinyint(); – Breezer
@ 브리저 : 내 webapp에있는 모든 기존 사용자를 경쟁 테이블에 추가 할 수 없습니다! –