私は、医師と過去の予定を含む予定データベースを持っています。 ユーザが医師への予約を予定したいとき、彼は居住地を選んだ後、その居住地に従って医師を表示する。異なるテーブルからの2つのSQLクエリを結合する
医師は過去の任命の順番で表示されます。つまり、私が過去に2人の心臓病専門医を訪問した場合、最後に私が予約したものが最初に表示されます、彼の後に他の人、そして彼らの後に他のすべての心臓学者と私は決して予定を持っていませんでした。
私は、心臓病専門医と私の過去の予定を探し、日付順に降順に並べ替えてから、すべての医師に行き、リストの一番下に他のものを追加する必要があります。
私はこのクエリをしようとしている:
(
select distinct pastappointments.doctorID from pastappointments where
pastappointments.insuredID = 1 and pastappointments.residency='cardio'
order by pastappointments.appTime desc
)
union (
select employees.employeeID from employees where
employees.Residency='cardio' and employees.employeeID not in (
select distinct pastappointments.doctorID from pastappointments where
pastappointments.insuredID = 1 and pastappointments.residency='cardio'
))
括弧たら、括弧なしで私は正しい順序を取得しています、労働組合のコマンド上記の最初のクエリを実行しているときに私がいる問題は、主ですクエリの結果が間違ったものに変わります。
私はMySQLを使用しています。
これは、2つのクエリではなく1つのクエリを使用して行いたいですが、必要な降順を失うことなく、そうする方法が見つからないようです。
こんにちは、ありがとうございました! あなたの最初の提案はうまくいきましたが、単純な提案を使用しようとしたときに予期せぬ「どこで」通知されました。 もう一つの小さな質問がありますが、メインの質問を使用しているのですか?DBから返されるのは医師のID番号です。 –
LEFT JOIN( 'pa.doctorID = e.employeeID')のON句がありません。 –
@PaulSpiegel。 。 。ありがとうございました。 –