2012-09-04 4 views
1

User, Holiday라는 두 개의 테이블이 있습니다. 이제 내 목표는 사용자를 검색하는 것입니다. 휴일 테이블에서 사용자 테이블이나 도시의 이름으로 사용자를 검색해야합니다. 이름으로 검색하면 사용자 테이블의 이름과 휴일 테이블의 도시가 표시되어야합니다. 그리고 만약 내가 도시 별 휴가 테이블에서 도시를 검색하면 그의 이름이 사용자 테이블에 표시되어야합니다.mysql select 쿼리가 정확한 결과를 반환하지 않습니다.

사용자 테이블 ::

내가 시도 enter image description here

휴일 표는 다음과 ::

  SELECT * FROM `holiday`,`user` 
      WHERE holiday.UserID=user.UserID 
       and user.Name like '%Bre%' 
       or holiday.City like '%Bre%' 

그러나 것은

답변

2

난 당신이 LEFT JOIN을 사용하고 싶습니다,

SELECT user.Name,holiday.City FROM `user` LEFT JOIN `holiday` 
        ON user.UserID =holiday.UserID 
         WHERE (user.Name like '%Bre%' 
         or holiday.City like '%Bre%') 
+0

답장을 보내 주셔서 감사합니다. 이 쿼리는 도시 이름이 'Bre'인 행만 반환합니다. 하지만 사용자 테이블에서 사용자 ID 4를 살펴보십시오. 사용자 이름은 "Breter"입니다. 그러나 그의 사용자 아이디는 휴가 테이블에 나타나지 않습니다. 왜 그게 보이지 않는지. 그러나 나는 이것을 또한 보여줄 필요가있다. – Rounak

+0

업데이트 된 답변으로 이동하십시오 .... –

+0

우수 .. 고마워 ....... – Rounak

0

당신은 select *를 :(사용할 수 없습니다가 있기 때문에 일부 열은 두 테이블에서 같은 이름을 갖습니다. s 사용자 ID.

이 시도 :

SELECT `user`.userID, `user`.Name, `holiday`.city 
FROM `holiday`,`user` 
WHERE holiday.UserID=user.UserID 
     and user.Name like '%Bre%' 
     or holiday.City like '%Bre%' 
+0

사용자 테이블의 모든 이름이 표시됩니다. – Rounak

+0

오케이, 죄송합니다. 죄송합니다. 문제가 "어디에서 ... 그리고 ..."또는 "사용 하시겠습니까?"(예 : '% Bre %'또는 holiday.City '% Bre %'와 같은 user.Name) " – lotusphp

0

시도 :

 SELECT * FROM `user` left join `holiday` on holiday.UserID=user.UserID 
     WHERE user.Name like '%Bre%' 
      or holiday.City like '%Bre%' 
+0

답장을 보내 주셔서 감사합니다. 이 쿼리는 도시 이름이 'Bre'인 행만 반환합니다. 하지만 사용자 테이블에서 사용자 ID 4를 살펴보십시오. 사용자 이름은 "Breter"입니다. 그러나 그의 사용자 아이디는 휴가 테이블에 나타나지 않습니다. 왜 그게 보이지 않는지. 그러나 나는 이것을 또한 보여줄 필요가있다. – Rounak

+0

@Rounak 정말로, 당신의 케이스에'left join'이어야합니다. –

0

이 시도 :

SELECT 
    * 
FROM 
    `holiday` h 
LEFT JOIN 
`user` u 
ON 
    h.UserID = u.UserID 
WHERE 
    u.Name like '%Bre%' or h.City like '%Bre%' 

표가 주어지면 결과가 반환되지 않습니다.

+0

답장을 보내 주셔서 감사합니다. 이 쿼리는 도시 이름이 'Bre'인 행만 반환합니다. 하지만 사용자 테이블에서 사용자 ID 4를 살펴보십시오. 사용자 이름은 "Breter"입니다. 그러나 그의 사용자 아이디는 휴가 테이블에 나타나지 않습니다. 왜 그게 보이지 않는지. 그러나 나는 이것을 또한 보여줄 필요가있다. – Rounak

관련 문제