세 개의 'users', 'friends', 'friendsrequests'테이블이 있습니다.여러 테이블 선택 MySQL
'사용자'는 ID, 성 및 이름을 포함하고 'friends'및 'friendsrequests'는 모두 users_id_a 및 users_id_b를 포함합니다.
새 친구를 검색 할 때 firstname이 LIKE 인 ID를 선택합니다. whatever 또는 lastname LIKE : 무엇이든간에. 그러나 다른 두 테이블에있는 ID를 제외하고 싶습니다.
나는 애플리케이션 로직을 통해 이것을 해결하는 방법을 알고 있지만, 나는 이것을해서는 안된다. SELECT 문을 연결하면 안되며 조인을 사용해야한다는 것을 알고 있습니다.
나는 데이터베이스의 전문가는 아니지만 어딘가에 SELECT ...를 사용하여 읽을 수 있습니다. 큰 테이블에서는 매우 느릴 수 있으므로, IN (SELECT ...)은 사용하지 않는 것이 좋습니다. 사실입니까? –
나는 그것이 "매우 느리다"라고 말할 것입니다. 쿼리 및 테이블 크기에 따라 다릅니다. 대부분의 쿼리에 대한 실제 시스템에서는 성능 차이를 느끼기가 어렵습니다. 그냥 알고 있어야합니다. 이 세 가지를 비교 한 좋은 기사가 있습니다. http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/ 이유는 다른 유형을 언급하는 것이 더 명확하게 이해할 수 있다는 것입니다. 의도를 문의하십시오. – DaveHogan