2013-01-19 74 views
0

* 父表 *:車輛我得到在選擇標籤值後分配它不應該在選擇標籤顯示

CREATE TABLE `vehicle` (
    `vehicle_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `version_number` INT(10) UNSIGNED NULL DEFAULT '0', 
    `vehicle_no` VARCHAR(64) NOT NULL COLLATE 'utf8_bin', 
    `vehicle_reg_no` VARCHAR(64) NOT NULL COLLATE 'utf8_bin', 
    `vehicle_name` VARCHAR(64) NOT NULL COLLATE 'utf8_bin', 
    `total_seat` INT(15) NOT NULL, 
    `route_id` INT(10) UNSIGNED NOT NULL, 
    `available_seat` INT(10) UNSIGNED NOT NULL, 
    PRIMARY KEY (`vehicle_id`) 
) 

子表: allocate_vehicle

CREATE TABLE `allocate_driver` (
    `allocate_driver_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `version_number` INT(10) UNSIGNED NULL DEFAULT '0', 
    `vehicle_id` INT(10) UNSIGNED NOT NULL, 
    PRIMARY KEY (`allocate_driver_id`), 
    INDEX `fk_vehicle_idx` (`vehicle_id`), 
    CONSTRAINT `fk_vehicle_idx` FOREIGN KEY (`vehicle_id`) REFERENCES `vehicle` (`vehicle_id`) ON UPDATE NO ACTION ON DELETE NO ACTION, 

) 

所以我給這個查詢:select veh.* from vehicle as veh JOIN allocate_driver as allDr on veh.vehicle_id!=allDr.vehicle_id

但不能正常工作...在插入之前我想要的車輛列表後,指定每輛車它不應該顯示在列表中..任何人都可以告訴我..在預先感謝:)

+1

我不明白你想達到什麼。請重新說明你的問題。 –

+1

其實我想分配車輛給司機。 – Karthikeyen

+1

我看不出選擇查詢如何將車輛分配給駕駛員。選擇查詢讀入數據庫。它不寫任何東西。 –

回答

0

如果我正確理解這一點,你想找到沒有分配到any驅動程序的車輛。您的查詢將查找未分配給some驅動程序的車輛(並且將爲每個這些驅動程序返回一次)。

然後此查詢應該給你你想要的東西:

SELECT veh.* FROM vehicle AS veh 
LEFT JOIN allocate_driver as allDr 
ON veh.vehicle_id = allDr.vehicle_id 
WHERE allDr.vehicle_id IS NULL 
+0

亞..我明白了.. 。 非常感謝.. :) – Karthikeyen