试图获取单行数据 - Mysql

时间:2017-01-14 00:37:14

标签: mysql sql database

我在尝试接受单一员工的访谈时遇到了编写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', 

3 个答案:

答案 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.htmlhttp://dev.mysql.com/doc/refman/5.7/en/select.html