2017-07-15 67 views
-3

三個數據庫表我有這三個數據庫表如何加入SQL

CREATE TABLE IF NOT EXISTS `bus_info` (
    `bus_id` int(11) NOT NULL, 
    `bus_no` varchar(20) NOT NULL 
) 


INSERT INTO `bus_info` (`bus_id`, `bus_no`) VALUES 
(1, 'Mh10 BD 5209'); 

CREATE TABLE IF NOT EXISTS `route_info` (
    `route_id` int(11) NOT NULL, 
    `route_name` varchar(100) NOT NULL, 
    `latitude` varchar(200) NOT NULL, 
    `longitude` varchar(200) NOT NULL 
) 


INSERT INTO `route_info` (`route_id`, `route_name`, `latitude`, `longitude`) VALUES 
(1, 'Sangli Stand', '16.852903', '74.562999'), 
(2, 'Maruti Chowk', '16.858100', '74.562460'), 
(3, 'Ganpati Mandir', '16.862211', '74.559501'), 
(4, 'College Corner ', '16.862854', '74.576579'), 
(5, 'Ram Mandir ', '16.856413', '74.574738'), 
(6, 'D mart', '16.845782', '74.576866'), 
(7, 'Vishrambag sangli', '16.846022', '74.602854'), 
(8, 'Bharat Mill', '16.865029', '74.607000'), 
(9, 'Bharti hospital', '16.840008', '74.618400'), 
(10, 'SBGI', '16.835329', '74.624400'); 

CREATE TABLE IF NOT EXISTS `route_detail` (
    `rd_id` int(11) NOT NULL, 
    `bus_id` int(11) NOT NULL, 
    `route_id` int(11) NOT NULL 
) 

INSERT INTO `route_detail` (`rd_id`, `bus_id`, `route_id`) 
    VALUES (1, 1, 1), 
      (2, 1, 2); 

我是一個單一的總線分配特定的路線有可能產生的單總線多條路線的話,我需要一個查詢的選擇對於所選總線

路線前:

從數據庫中route_detail表中有分配了兩個路線相同的公交車,然後我需要從上述三個表是

列210

bus_id,bus_no,route_id,經度,緯度

回答

0

我已經做到了.....

SELECT 
    bus_info.bus_no, route_detail.route_id, route_info.latitude, 
    route_info.longitude 
FROM 
    (bus_info 
INNER JOIN 
    route_detail ON bus_info.bus_id = route_detail.bus_id) 
INNER JOIN 
    route_info ON route_detail.route_id = route_info.route_id 
0

確切的語法將取決於您使用的數據庫。要在Oracle中這樣做,我希望能寫出這樣的查詢;

select a.bus_id, a.bus_no, c.route_id, c.latitude, c.longitude 
from 
bus_info a join 
route_detail b on a.bus_id = b.bus_id 
route_info c on b.route_id = c.route_id 
where {alias.column_name} {operator} {operand}; 

對於每個希望加入的表,您都需要一個連接語句。 每個連接通過查找要連接的兩個表上的匹配鍵來工作。 使用表別名(a,b,c等)來保持查詢的簡潔。 所有連接的結果都是一個可以以正常方式查詢的大表。 我無法從你的問題中確切地知道你想知道每條公共汽車的內容,所以內部或外部連接可能對你更好。默認情況下,內部連接已完成,這意味着只包含符合所有查詢條件的行。廣義而言,外連接帶來更多東西。