select * from workers where id = uid and age = uage` -- sql1
select uid,uage from users where uage>20` -- sql2
은 내가 uid
및 sql1
에 사용 uage
가 sql2
에서 오는 즉 sql1
의 상태로 sql2
을 사용하고 싶습니다.이 쿼리는 어떻게 완료합니까?
select * from workers where id = uid and age = uage` -- sql1
select uid,uage from users where uage>20` -- sql2
은 내가 uid
및 sql1
에 사용 uage
가 sql2
에서 오는 즉 sql1
의 상태로 sql2
을 사용하고 싶습니다.이 쿼리는 어떻게 완료합니까?
당신은 두 테이블을 조인 할 수 있습니다
SELECT w.*
FROM workers w
INNER JOIN users u
ON w.id = u.uid AND w.age = u.uage
WHERE u.uage > 20
그 또는 그녀는 'INNER JOIN'이 아니라 sql1의 조건으로 sql2를 사용하려고합니다. –
@MarkYao - 그리고이'JOIN'을 통해 op가 그 결과를 얻고 있습니다. – Lamak
당신은 임시 테이블과 중첩 된 쿼리를 할 수 있습니다. Thr 첫 번째 쿼리는 두 번째 쿼리에서 임시 테이블을 만듭니다.
하위 쿼리를 사용할 수 있습니다.
코드 :
select * from workers where (id,age) =(select uid,uage from users where uage>20);
@Wiseguy 투표하기 전에 mysql 하위 쿼리에 대해 자세히 알아야한다. –
제 질문은 수사학 적이었습니다. 나는 실제로 묻지 않았다. 하위 쿼리가 두 개 이상의 행을 반환하면 작동하지 않는다는 것을 의미했습니다. 그러나'= '를'IN'으로 변경하면 작동합니다. – Wiseguy
다음은 MySQL의 태그를 추가합니다. :) –
우리는 분명히 문법을 도와 줄 수는 있겠지만 여기에 실제로 돌아가고 싶은 것이 확실하지 않습니다. ID를 질문하는 경우 왜 나이가 필요합니까? – n8wrl
[SQL 조인] (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)에 대해 자세히 알아보십시오. – eggyal