2013-04-03 125 views
0

我一直在努力解決這個問題幾天了,我似乎不能提出解決方案,我也不能看到我的錯在哪裏。PHP PDO - dblib MSSQL - SQL連接問題

我試圖寫一個查詢在sql中有一對夫婦連接,因爲我需要顯示在幾個不同的表中找到的信息。

我的問題在於連接,每當我做連最簡單的連接時,我的查詢都不會返回任何內容。以下是2個嘗試過的例子。希望我只是在語法中丟失了一些東西。從dbo.VehicleJobHistory

dbo.VehicleJobHistory: 

VehicleID   Number 
BookingID   Text 
DriverID   Number 
PickupSuburb  Text 
DestinationSuburb Text 
ReasonDispatched Text 
TimeJobRequired  Date/Time 
TimeCarAccepted  Date/Time 
TimeCarPickup  Date/Time 
TimeCarComplete  Date/Time 
KmToPickup   Number 
KmOfJob    Number 
_timestamp   DateTime 

樣品日期:

$ STH = $ DBH->查詢(「SELECT * FROM dbo.VehicleJobHistory WHERE TimeJobRequired> 」2013年2月3日「 AND VehicleID = 」451「 「);

三千零十六萬二千零九十分之四百五十一/ 8387/Springwood的/ Springwood的// 02月03日2013 12:58:23:800AM /// 0/0/451 /八千三百八十七分之三千〇一十六萬三千〇七十一/ Loganholme/Loganholme // 02月03日2013 01:23:45:263AM /// 1200/4250/451/30163856/8387/Shailer Park/Shailer Park // 2013年2月3日01:45:50:450AM /// 0/0/0 451/30163965/8387/Loganholme/Runcorn // Feb 3 2013 01:48:31:200AM /// 2950/16050/451/30164712/8387/Eight Mile Plains/Eight Mile Plains // Feb 3 2013 02:09:33: 017AM /// 2450/5750/ 451/30165778/8387/Springwood/Springwood // Feb 3 2013 02:44:51:363AM /// 800/2100/ 451/30166370/8387/Loganholme/Loganholme // 201年2月3日3 03:06:28:103AM 03:28:53 AM /// 0/0/451/30166916/8387/Shailer Park/// Feb 3 2013 03:28:46:553AM /// 0/13950/451/30169626/11979/Logan Central/// Feb 3 2013年7月3日上午7:18:05:6:30AM /// 0/0/451/30169632/11979/Logan Central/Logan // ///0/0/ 451/30169783/11979/Woodridge/Springwood // Feb 3 2013 07:38:32:377AM /// 1250/6400/451/30170203/11979/Logan Central/// Feb 3 2013 08:31:52:960AM /// 0/1050 /從dbo.vehicle

dbo.Vehicle: 

VehicleID   Number 
CarNumber   Text 
PrimaryFleetID  Number 
Conditions   Text 
RegoNum   Text 
RegoExpiry   Date/Time 
TaxiLicNum   Number 
TaxiLicExpiry  Date/Time 
VehicleMake  Text 
VehicleModel  Text 
VehicleYear  Text 
OwnerID   Number 
OperatorID   Number 

示例數據

$STH = $DBH->query('SELECT * FROM dbo.Vehicle WHERE VehicleID = "451"'); 

echo $row->VehicleID . "/"; 
echo $row->CarNumber . "/"; 
echo $row->PrimaryFleetID . "/"; 
echo $row->Conditions . "/"; 
echo $row->OwnerID . "/"; 
echo $row->OperatorID . "/"; 

4分之451/120395399168分之5/ 1/3/

當我嘗試和運行,包括任何查詢聯接我沒有得到任何結果...

這個沒有返回值:

$ STH = $ DBH->查詢(「選擇dbo.VehicleJobHistory.BookingID, dbo.VehicleJobHistory.DriverID FROM dbo.Vehicle INNER JOIN dbo.VehicleJobHistory ON dbo.Vehicle.VehicleID = dbo.VehicleJobHistory.VehicleID WHERE TimeJobRequired> '09/03/2013'和 VehicleID = $ VehicleID「);

此返回bookingID的和DriverID的從VehicleJobHistory表數組:

$ STH = $ DBH->查詢(「選擇BookingID,DriverID FROM DBO。VehicleJobHistory WHERE TimeJobRequired>「2013年2月3日」和 VehicleID = $ VehicleID「);

我用盡幾乎所有其他組合我能想出,但只要我添加一個連接到我的查詢我不似乎得到任何工作。

如果任何人有經驗,這個問題還是可以點我在正確的方向,我將非常感激。

提前感謝!

回答

1

是所需的SQL左連接

SELECT dbo.VehicleJobHistory.BookingID 
    , dbo.VehicleJobHistory.DriverID 
FROM dbo.Vehicle 
LEFT JOIN dbo.VehicleJobHistory 
    ON dbo.Vehicle.VehicleID = dbo.VehicleJobHistory.VehicleID 
     AND dbo.VehicleJobHistory.TimeJobRequired > '09/03/2013' 
WHERE dbo.Vehicle.VehicleID = $VEHICLEID