単純な従業員データベースの列にこれに関するクエリを作成するように依頼されました。
ninumber-名-姓-アドレス-SuperVisorNiNumber
従業員と上司はすべて同じテーブルに保持され、ninumberによって参照されます。私が作成するように依頼されたクエリは次のとおりです。
v。NI番号、従業員の名前と姓、および上司を共有する上司のNI番号を検索し、従業員と上司の両方が部門8で作業します。実践2のクエリviで行われた従業員関係を2回参照します。 。結果は、「従業員NI番号」、「名」、「姓」、および「スーパーバイザーNI番号」というタイトルの列に表示される必要があります。
したがって、私はこのクエリを作成しました:
SELECT e1.ninumber,
e1.fname,
e1.minit,
e1.lname,
e1.address,
e1.superNiNumber,
COUNT(*) AS nrOfOccurences
FROM employee AS e1,
employee AS e2
WHERE e1.dno = 8
AND e1.superNiNumber = e2.ninumber
AND e2.dno = 8
GROUP BY e1.superNiNumber
HAVING COUNT(*) > 1
質問のこの部分、つまり「従業員がその上司をどこで共有するか」を解決するために、明確なクエリを実行することはできませんでした。このクエリは行のグループを返し、表示したい行の一部を非表示にします。
私の質問は次のとおりです。私の質問は質問に対して正しいですか。mySQLでNONDISTINCTクエリを実行して、データベースがすべてのフィールドをグループ化するのではなく返すようにすることはできますか。
私のクエリからのReutrnの結果
NInumber fname minit lname address supervisorNiNum number of occerences
666666601 Jill J Jarvis 6234 Lincoln, Antrim, UK 666666600 2
666666607 Gerald D Small 122 Ball Street, Letterkenny, IRL 666666602 3
666666604 Billie J King 556 WAshington, Antrim, UK 666666603 2
ありがとう。