2012-10-04 1 views
0

안녕하십니까.MySQL 어디에서 사용 하시겠습니까?()

예를 들어 두 개의 테이블이 있습니다. 이 쿼리는 다른 표 Y에서 일하고 X

________________ 
| id | A | 
|____|_________| 
| 1 | 1,2,4,8 | 
|____|_________| 

표 이름, 작동하지 않는에서

mysql_query(" Select * from Y where id IN(1,2,4,8) ") 

하지만,

mysql_query(" Select * from Y where id IN(Select A from X where id=1) ") 

내가 무엇을 할 수 있습니까? 감사합니다.

답변

1

더 나은 테이블 디자인은 다음과 같습니다 테이블에

table X: 
-------- 
id int 
someid int 

값은 다음과 같습니다

id someid 
-- -------- 
1 1 
2 1 
4 1 
8 1 

조회에 다음 mysql_query(" Select * from Y where id IN(Select id from X where someid=1")을 수 있습니다.

질문에 답변하십시오 - PHP 또는 비슷한 것으로 문의하는 것 같습니다. 테이블 구조를 사용하여 mysql_query("Select A from X where id=1")을 사용하여 테이블 X의 값을 검색하고 결과를 변수에 저장할 수 있습니다. 그런 다음 두 번째 쿼리 mysql_query(" Select * from Y where id IN(" + yourVar + ") ")을 실행할 수 있습니다.

+0

감사합니다. –

0

"많은 관계가 있음"이므로 중간 조인 테이블이 있어야합니다. 이 구조의 이점은 삽입 및 삭제에 있습니다. A에서 추가 또는 삭제할 구조에서 레코드를 가져 와서 값을 변경하고 다시 쓰거나 (아마 프로 시저를 작성하십시오).

X  
_________ 
| id | 
|_______| 
| 1 | 
|_______|    

    Y 
_________ 
| id | 
|_______| 
| 1 | 
|_______| 
| 2 | 
|_______| 
| 3 | 
|_______| 

    X_Y 
____________________________ 
| id | x_id | y_id | 
|_______|________|_________| 
| 1 | 1 | 1 | 
|_______|________|_________| 
| 2 | 1 | 2 | 
|_______|________|_________| 
| 3 | 1 | 3 | 
|_______|________|_________| 


SELECT * FROM Y INNER JOIN X_Y ON Y.id=X_Y.y_id WHERE X_Y.x_id=1 

or 

SELECT * FROM Y WHERE id IN (SELECT y_id FROM X_Y WHERE x_id=1) 
+0

답변 해 주셔서 감사합니다. –

+0

당신을 진심으로 환영합니다. 답변 중 하나가 귀하의 질문에 답변 한 경우 올바른 것으로 표시해야합니다. – Kareem