我已经在这个问题上挣扎了几天了,现在我似乎不能想出一个解决方案,也不能看到我哪里出错了。
我试图在sql中写一个查询,有一对连接,因为我需要显示在几个不同的表中找到的信息。
我的问题在于连接,每当我做即使是最简单的连接我的查询返回什么。下面是我尝试过的两个例子。希望我只是在语法中遗漏了一些东西。
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
样本日期来自dbo。VehicleJobHistory:
$STH = $DBH->query('SELECT * FROM DBH . ')
451/30162090/8387/Springwood/Springwood//Feb 3 201312:58:23:800AM//0/0/451/30163071/8387/Loganholme//Loganholme//Feb 32013 01:23:45:263AM//1200/4250/451/30163856/8387/Shailer公园/Shailer公园//Feb 3 2013 01:45:50:450AM///0/0/451/30163965/8387/Loganholme/Runcorn/2013年2月3日01:48:31 . 200 am//2950/16050/451/30164712/8387/八英里平原/八英里平原//Feb 3 2013 02:09:33:017AM///2450/5750/451/30165778/8387/Springwood/Springwood//2013年2月3日02:44:51:363AM////800/2100451/30166370/8387/Loganholme/Loganholme//2013年2月3日03:06:28:103AM//0/0/451/30166916/8387/Shailer Park///Feb 3 201303:28:46:553AM///0/13950/451/30169626/11979/Logan Central///2月3日2013 07:18:05:633AM//0/0/451/30169632/11979/洛根中央/洛根中央//Feb 3 2013 07:18:33:120AM///0/0/451/30169783/11979/Woodridge/Springwood//2013年2月3日07:38:32:37 am//1250/6400/451/30170203/11979/Logan Central///Feb 32013 08:31:52:960AM///0/1050/
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
来自dbo.vehicle的样本数据
$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 . "/";
451/4/5/120395399168/1/3/
当我尝试运行任何查询,包括一个连接,我得到没有结果…
this return nothing:
$STH = $DBH->查询("SELECT dbo.VehicleJobHistory.BookingID, "dbo. vehiclejobhistory . driverid车辆内连接dbo。VehicleJobHistory ON dbo.Vehicle.VehicleID =dbo.VehicleJobHistory.VehicleID WHERE timejobrerequired> '09/03/2013' AND
这将从VehicleJobHistory表中返回一个包含bookingID和DriverID的数组:
$STH = $DBH->query("SELECT BookingID, DriverID FROM DBH . ")VehicleJobHistory WHERE timejobrerequired> "02/03/2013" AND
我几乎尝试了所有其他的组合,我可以拿出,但只要我添加一个连接到我的查询,我似乎没有得到任何工作。
如果有人有这个问题的经验,或者能给我指出正确的方向,我将不胜感激。
提前感谢!
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