2010-11-27 3 views
1

임대 테이블 :MySQL의 쿼리 검색 질문

CREATE TABLE RENTAL 
(
TransactionNo int NOT NULL AUTO_INCREMENT, 
MemberID int NOT NULL, 
ItemNo char(3) NOT NULL, 
RentalEmployeeID varchar(30), 
ReturnEmployeeID varchar(30), 
Checkout_date DATE, 
Checkin_date DATE, 
Return_date DATE, 
ItemQuantity int(11) NOT NULL, 
TotalPrice DOUBLE(10,2) NOT NULL, 
ItemFee DOUBLE(10,2), 
PRIMARY KEY(TransactionNo), 
FOREIGN KEY(MemberID) REFERENCES Member(MemberID), 
FOREIGN KEY(ItemNo) REFERENCES Item(Itemno), 
FOREIGN KEY(RENTALEMPLOYEEID) REFERENCES Employee(EmployeeID), 
FOREIGN KEY(RETURNEMPLOYEEID) REFERENCES Employee(EmployeeID) 
) 

내가 그러나 나는 단지의 체크를 얻거나 체크 아웃 할 수 없습니다, 체크인 또는 조 스미스를 위해 뭔가를 체크 아웃 중 하나를 모든 사람을 검색하는 것을 시도하고있다 둘 모두는 아닙니다. 중첩 절이 필요합니까?

SELECT r.ItemNo, 
     i.Category, 
     i.Style, 
     i.Description, 
     r.`CheckIn_date`, 
     r.`Checkout_date`, 
     e.Fname, 
     e.Lname 
FROM MEMBER AS m, 
     ITEM AS i, 
     RENTAL AS r, 
     Employee e 
WHERE m.MemberID = r.MemberID 
AND  m.Fname = 'Joe’ 
AND  m.Lname=’Smith’ 
AND  r.ItemNo = i.ItemNo 
AND  r.RentalEmployeeID = e.EmployeeID 
+0

쿼리 말인지 – Egalitarian

답변

0

나는 체크인과 체크 아웃을 모두 포함하는 레코드는 선택되지 않는다고 생각합니다. 쿼리를 막을 수있는 방법은 없습니다. 그러한 데이터가 누락되어 있어야합니다. 이 내가 생각하는 조인으로

+0

잘 보인다 ... 그것을 대체 할 수있다. 나는 4 가지 거래가있다. 2 번은 2 번, 렌털은 2 번. 1 명의 직원이 2 개의 항목을 체크 아웃하고 1 명의 직원이 2 개의 항목을 체크 아웃했습니다. 나는 r.RentalEmployeeID = e.EmployeeID 또는 returnemployee에 의해 r.ReturnEmployeeID = e.EmployeeID에 의해서만 rentemployee를 검색 할 수 있습니다. – user522032

0

당신은

SELECT r.ItemNo, 
     i.Category, 
     i.Style, 
     i.Description, 
     r.`CheckIn_date`, 
     r.`Checkout_date`, 
     e_rent.Fname, 
     e_rent.Lname, 
     e_rtn.Fname, 
     e_rtn.Lname 
FROM ITEM AS i, 
     RENTAL AS r, 
     Member m 
LEFT JOIN Employee e_rent ON (r.RentalEmployeeID = e_rent.ID) 
LEFT JOIN Employee e_rtn ON (r.RentalEmployeeID = e_rtn.ID) 
WHERE m.MemberID = r.MemberID 
AND  m.Fname = 'Joe’ 
AND  m.Lname=’Smith’ 
AND  r.ItemNo = i.ItemNo 
+0

나는 도움을주었습니다. iT는 내가이 두 가지 선택으로 OR 진술을해야한다고 생각합니다. – user522032