2010-04-27 7 views
0
+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| pid | varchar(99) | YES |  | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 
1 row in set (0.00 sec) 


+-------+---------------+------+-----+---------+-------+ 
| Field | Type   | Null | Key | Default | Extra | 
+-------+---------------+------+-----+---------+-------+ 
| pid | varchar(2000) | YES |  | NULL |  | 
| recid | varchar(2000) | YES |  | NULL |  | 
+-------+---------------+------+-----+---------+-------+ 
2 rows in set (0.00 sec) 

이것은 내 테이블입니다. pid는 사용자의 ID입니다. "recid"는 해당 사용자에게 권장되는 노래입니다.MYSQL에 일대일 관계를 어떻게 추가합니까?

나는 pid의 목록을 갖고 각 사람에게 추천 할만한 곡을 원합니다. 물론 두 번째 테이블에서 (pid, recid) 고유 키가됩니다.

어떻게 일대일 쿼리를 수행합니까?

+0

일대일 관계는 두 개 (또는 그 이상)가 아닌 동일한 테이블에 존재하도록 모델링되어야합니다. –

답변

0
# retrieve all songs associated to a given user  
SELECT songs.* 
FROM user 
INNER JOIN songs ON (user.pid = songs.pid) 
WHERE user.pid = ? 
0

당신은

ALTER TABLE `foo` 
ADD FOREIGN KEY (`bar_id`) REFERENCES `bar` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE 

같은 쿼리 FKS를 작성하고 mysql documentation을 볼 수 있습니다. 또한 MySQL은 InnoDB 엔진의 외래 키만 지원합니다.

0

조인 (내부)을 사용하여 정보를 가져오고 싶습니다. 여기 제가 사용 해본 결과와 도움이되는 것으로 나타났습니다. Joins

관련 문제