2012-04-30 48 views
2

我这个星期准备我的考试,我看到这样一个过去的论文的问题:加入了查询

讲师

lec_id 
lec_name 
phone 
dept 

请求

lec_id 
book_id 
qty 
date 

book_id 
title 
author 
cost 
supplier 

我需要写一个MySQL命令,将找到的姓名和电话号码,每个讲师的请求书编号123

我试图创建查询,如下图所示:

SELECT lec_name, phone FROm lecturer 
    LEFT JOIN requests ON requests.lec_id = lecturer.lec_id 
    LEFT JOIN requests ON requests.book_id = book.book_id 
WHERE book.book_id = 123 

不过,我不断收到错误不是唯一的表/别名: '请求'

回答

0

最好从所以WHERE子句是清洁的,也许更直观地适合于寻找另一个特定的书和/或所有书籍开始:

select book.book_id, book.title, lecturer.lec_name, lecturer.phone 
from book 
left join requests on book.book_id = requests.book_id 
left join Lecturer on requests.lec_id = Lecturer.lec_id 
where book.book_id = 123 
0
SELECT lec_name, phone FROm lecturer 
    LEFT JOIN requests ON requests.lec_id = lecturer.lec_id 
    AND requests.book_id = book.book_id 
WHERE book.book_id = 123