나는 약간 혼란스러워. 내 엔진으로 InnoDB와 함께 MySQL 5+를 사용하고 있습니다. 다음 문을 실행하고 'user_temp'테이블이 비어 있으면 '사용자'테이블에 상관없이 항상 빈 결과 집합을 얻습니다.MySQL (InnoDB) 2 테이블에서 선택하고 항상 빈 결과 집합
SELECT * FROM `users`, `user_temp`
'user_temp'에 무엇인가 입력하면 모든 결과가 반환됩니다. 이게 이러는 거니?
감사합니다.
사용자 테이블의 레코드와 user_temp 테이블의 레코드를 비교하는 기준이 없으면 그것은 데카르트 제품입니다. –
데카르트 조인은 한 테이블의 모든 행을 다른 테이블의 모든 행에 결합한다는 것을 의미합니다 (원하는 테이블이 아닌). 한 테이블에 아무 것도없는 경우 0을 곱하는 것과 같습니다. – JohnB
그리고 암시 적 조인보다는 명시 적 조인을 권장합니다. 당신은 전자의 유연성이 훨씬 뛰어납니다. – staticsan