我在尝试接受单一员工的访谈时遇到了编写SQL查询的问题
我试过这个
SELECT DISTINCT
instructor_id,
progess_made,
FROM
bookings, staff
WHERE progess_made LIKE "New";
但我得到的输出是:
# instructor_id, progess_made,
'1007', 'New',
'1008', 'New',
'1014', 'New',
我想要这样的输出,只想选择一个员工
# instructor_id, progess_made,
'1007', 'New',
答案 0 :(得分:2)
添加LIMIT 1可以很好地完成工作,但是你得到的那行几乎是不确定的。最好将讲师id添加到where子句
SELECT DISTINCT
instructor_id,
progess_made,
FROM
bookings, staff /** <-- this sort of implicit join should be avoided */
WHERE progess_made LIKE "New" AND instructor_id =1007
答案 1 :(得分:1)
简单规则:从不在FROM
子句中使用逗号。 始终使用正确的JOIN
语法。
我认为这是你问题的根源。您的查询应如下所示:
SELECT instructor_id, progess_made,
FROM bookings b JOIN
staff s
ON b.staffid = s.staffid -- I made up these columns
WHERE progess_made LIKE 'New';
我编写了JOIN
的列。使用适当的数据列。
答案 2 :(得分:0)
注意我添加的最后 LIMIT 。
SELECT DISTINCT
instructor_id,
progess_made,
FROM
bookings, staff
WHERE progess_made LIKE "New"
LIMIT 1;
您可以使用LIMIT子句限制n#或记录。您也可以将其用于寻呼目的。 阅读:https://dev.mysql.com/doc/refman/5.5/en/limit-optimization.html和 http://dev.mysql.com/doc/refman/5.7/en/select.html