2017-01-14 4 views
1

私はこのは、データの単一の行を取得しようとする - MySQLを

SELECT DISTINCT 
    instructor_id, 
    progess_made, 
FROM 
    bookings, staff 

    WHERE progess_made LIKE "New"; 

が、出力しようとしている

単一スタッフによるインタビューを取得しようとしている上でSQLクエリを書くことについての問題を抱えています私は取得していますこれです:

# instructor_id, progess_made, 
'1007', 'New', 
'1008', 'New', 
'1014', 'New', 

私はこのような出力は、唯一のスタッフ

を選択したいしたい
# instructor_id, progess_made, 
'1007', 'New', 

答えて

2

はかなり不確定です。 FROM句の決して使用コンマ:より良い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 
0

最後にLIMITが追加されています。

SELECT DISTINCT 
    instructor_id, 
    progess_made, 
FROM 
    bookings, staff 

    WHERE progess_made LIKE "New" 
LIMIT 1; 

LIMIT句を使用してn個のレコードまたはレコードを制限できます。また、これをページングの目的で使用することもできます。 読む:うまくしかし、その後、あなたが得るどの行仕事をするLIMIT 1を追加https://dev.mysql.com/doc/refman/5.5/en/limit-optimization.htmlhttp://dev.mysql.com/doc/refman/5.7/en/select.html

+0

代わりにinstructor_id 1014を選択しますか? – user7416728

+0

WHERE句に 'AND instructor_id = 1014'を追加してください。 –

+0

@Gordon Linoff氏は次のように言っています:"単純規則:FROM句にカンマを使用しないでください。私は投票しました –

1

シンプルなルールにインストラクターのIDを追加します。 常には、適切で明示的な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の列を作りました。データに適切な列を使用します。

関連する問題