2012-05-17 3 views
2
select * from workers where id = uid and age = uage` -- sql1 
select uid,uage from users where uage>20`    -- sql2 

은 내가 uidsql1에 사용 uagesql2에서 오는 즉 sql1의 상태로 sql2을 사용하고 싶습니다.이 쿼리는 어떻게 완료합니까?

+0

다음은 MySQL의 태그를 추가합니다. :) –

+0

우리는 분명히 문법을 도와 줄 수는 있겠지만 여기에 실제로 돌아가고 싶은 것이 확실하지 않습니다. ID를 질문하는 경우 왜 나이가 필요합니까? – n8wrl

+1

[SQL 조인] (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)에 대해 자세히 알아보십시오. – eggyal

답변

5

당신은 두 테이블을 조인 할 수 있습니다

SELECT w.* 
FROM workers w 
INNER JOIN users u 
ON w.id = u.uid AND w.age = u.uage 
WHERE u.uage > 20 
+0

그 또는 그녀는 'INNER JOIN'이 아니라 sql1의 조건으로 sql2를 사용하려고합니다. –

+1

@MarkYao - 그리고이'JOIN'을 통해 op가 그 결과를 얻고 있습니다. – Lamak

0

당신은 임시 테이블과 중첩 된 쿼리를 할 수 있습니다. Thr 첫 번째 쿼리는 두 번째 쿼리에서 임시 테이블을 만듭니다.

-1

하위 쿼리를 사용할 수 있습니다.
코드 :

select * from workers where (id,age) =(select uid,uage from users where uage>20); 
+0

@Wiseguy 투표하기 전에 mysql 하위 쿼리에 대해 자세히 알아야한다. –

+0

제 질문은 수사학 적이었습니다. 나는 실제로 묻지 않았다. 하위 쿼리가 두 개 이상의 행을 반환하면 작동하지 않는다는 것을 의미했습니다. 그러나'= '를'IN'으로 변경하면 작동합니다. – Wiseguy

관련 문제