私はこの上に私の髪を引っ張る点に近いです。これは私が働いているクエリです:これはMySQLのバグですか、あるいは私は狂っていますか?クエリが十分な結果を返さない
SELECT
*,
GROUP_CONCAT(DISTINCT d.title SEPARATOR ', ') AS departments,
MAX(d.department_id) AS department_id,
CONCAT(friendly_last_name, ', ', friendly_first_name) AS professor_name,
IF(p.reviews = 0, "", p.quality) AS quality,
IF(p.reviews = 0, "", p.reviews) AS reviews,
IF(p.reviews = 0, "", p.ease) AS ease,
u.url
FROM
educational.professors_departments
LEFT JOIN educational.professors p USING (professor_id)
LEFT JOIN educational.departments d USING (department_id)
LEFT JOIN educational.universities u ON (p.university_id = u.university_id)
WHERE
p.university_id = 3231
AND d.department_id IN ('91')
GROUP BY
professor_id
ORDER BY p.friendly_last_name ASC, p.friendly_first_name ASC
私はそのクエリを実行すると、私は101の結果を取得します。単純なLIMIT 20をクエリの最後に追加すると、突然クエリが1つの結果を返します。
それは十分奇妙ではありませんかのように、私は25を制限するLIMIT 20を変更した場合、私は25件の結果を受け取ります。私がこれについて不足しているいくつかの魔法のことがありますか?私は私の人生のためにそれを理解することはできません。
P.S. - SQL_NO_CACHEを無駄にしようとしました。 P.P.S. - 私はBY句全体ORDERを削除しますが、LIMIT 20のままにした場合...私は20件の結果
のレビュー= 0理論的には全く同じでなければなりません。 –
は、それはあなたが実際には最初の20件の結果かそこらのためにnull値を取得しているし、彼らはあなたのシェル内のテキストとして表示されないか、あなたのシェルから「x行が返された」というメッセージを取得していることは可能ですか? – dfb
SQLYogは "1 row returned"と言っていましたが、これをシェルで実行し、 "1 row in set"という行が1つしかないことを確認してください。 –