2011-01-31 14 views
1

だから私はSQLに慣れていて、私が学んだことを愛していますが、ここには私が困惑している質問があります。SQLクエリの質問

私はウェブサイトフォームを作成しました。それはタイムカード型のフォームです。ユーザがログオンし、プルダウンメニュー(DBから選択されている)をクリックすると、jobsiteと表示され、スクロールしてJobsite#2をクリックします。 (両方のフィールドが同じテーブルから選択されています..)提出すると、DBに正しく送信されます。両方のフィールドを選択したID番号として表示します..名前ではありません。

SELECT jobsite.Jobsite as 'Customer', 
FROM timeCard 
LEFT JOIN jobsite ON timeCard.jobsite = jobsite.id 

このクエリはうまくいきます。情報を引き出すtimeCard.jobsite。私はJobsite2から偉大すぎて引いて、すべての入力されたデータを作品

LEFT JOIN jobsite ON timeCard.jobsite2 = jobsite.id 

に変更した場合は...何の問合せそれらが同じクエリの「顧客1、およびCustomer2」として表示するために取得するために働くのだろうか?私の質問は理にかなっていますか?私はそれをExcelにエクスポートして、基本的には1行にすべての情報が表示されるようにしようとしています。従業員1、作業現場1及び現場4(代わりにショーで働いていた:従業員(私は)(この場所)と(その場所)の両方jobsitesはDB

おかげで、同じテーブルから来

で働いていました君たち/ギャルが

+1

どのデータベースについてですか? –

答えて

1
SELECT js1.jobsite AS customer1, js2.jobsite AS customer2 
FROM timecard tc 
LEFT JOIN 
     jobsite js1 
ON  js1.id = tc.jobsite 
LEFT JOIN 
     jobsite js2 
ON  js2.id = tc.jobsite2 
0

を与えることができます任意の助けのためにあなたは、PSはあなたがSQLに慣れてい言及したので、私はこれを取るしたいと思います。(この?

SELECT jobsite.Jobsite as 'Customer', 
FROM timeCard, jobSite 
WHERE timeCard.jobsite = jobsite.id 
OR timeCard.jobsite2 = jobsite.id 

のようなものを求めています機会あなたは、パラメータ化クエリ(ASP.Net記事、PHP)、あなたは常にを使用して代わりの文字列を連結する必要があります)

4

ので、1 timecardあなたは、二回jobsiteテーブルに参加することが必要になるだろう知っている作りますレコードは2つの異なるjobsiteレコードに関連付けられています(スキーマとDBMSに関するいくつかのことを前提としています)。

SELECT t.EmployeeName, j1.jobsite AS 'Customer 1', j2.jobsite AS 'Customer 2' 
FROM timecard t 
LEFT JOIN jobsite j1 ON t.jobsite = j1.id 
LEFT JOIN jobsite j2 ON t.jobsite2 = j2.id