2017-09-04 113 views
0

我有一個使用兩個數據庫的查詢。 其中一個表中的表的名稱是另一個表中的一行。我需要加入這兩個結果一個查詢:mysql連接表單獨的數據庫到錶行

SELECT min(`price_client`) AS price From 
    database2.`$propertyname` ($propertyname = name for the table) 

    SELECT internet, text_esp, pool, bedrooms, bathrooms, air, image 
    FROM database1.2buscador 
    where id_propiedad = '$propertyname' 

是否有可能加入他們的行列? 在這種情況下$ PROPERTYNAME是表的名稱Alicate_Playa

這是數據庫和表是怎麼樣的, 兩個數據庫在同一臺服務器上:

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
    /*!40101 SET @[email protected]@CHARACTER_SET_RESULTS 
    */; 
    /*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
    /*!40101 SET NAMES utf8mb4 */; 

    -- 
    -- Database: `database2` 
    -- 

    CREATE TABLE `Alicate_Playa` (
    `ID` int(5) NOT NULL, 
    `cal_date` date DEFAULT NULL, 
    `price_owner` decimal(12,2) DEFAULT NULL, 
    `price_client` decimal(12,2) DEFAULT NULL, 
    `description` varchar(10) DEFAULT NULL 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

    INSERT INTO `Alicate_Playa` (`ID`, `cal_date`, `price_owner`, 
    `price_client`, `description`) VALUES 
    (1, '2017-09-01', '1.00', '158.00', 'baja'), 
    (2, '2017-09-02', '1.00', '158.00', 'baja'), 
    (3, '2017-09-03', '1.00', '175.00', 'baja'), 
    (4, '2017-09-04', '1.00', '175.00', 'baja'); 



    /*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
    /*!40101 SET @[email protected]@CHARACTER_SET_RESULTS 
    */; 
    /*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
    /*!40101 SET NAMES utf8mb4 */; 

    -- 
    -- Database: `database1` 
    -- 

    CREATE TABLE `2buscador` (

    `id` int(11) NOT NULL, 
    `id_propiedad` varchar(30) NOT NULL DEFAULT '', 
    `text_esp` mediumtext NOT NULL, 
    `internet` varchar(40) NOT NULL, 
    `pool` varchar(7) NOT NULL DEFAULT '', 
    `bedrooms` tinyint(2) NOT NULL DEFAULT '0', 
    `bathrooms` tinyint(1) NOT NULL DEFAULT '0', 
    `air` char(2) NOT NULL DEFAULT '', 
    `image` varchar(100) NOT NULL DEFAULT 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

    INSERT INTO `2buscador` (`id`, `id_propiedad`, ` 
    `pool`, `bedrooms`, `bathrooms`, `air`, `text_esp`, 
    `image`, `internet `) 
    VALUES (88, 'Alicate_Playa', '2', 'si', 2, 2, 'si', 
    , Lorem ipsum etc.', '/includes/ Alicate_Playa/1232..jpg', 
    'si',); 

感謝

+0

請參閱:[爲什麼我應該爲似乎我是一個非常簡單的SQL查詢?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-tobe -a-very-simple-sql-query) – Strawberry

+0

如何加入像「database1.tb t1加入database2.tb t2在t1.property = t2.property」 –

+0

@strawberry我編輯並添加了表結構,希望這是現在清除,謝謝 – Helenp

回答

0

這是可能但兩個數據庫必須在同一臺服務器上:

SELECT t2.min(`price_client`), t1.internet, t1.text_esp, t1.pool, t1.bedrooms, t1.bathrooms, t1.air, t1.image AS price 
    FROM database2.`$propertyname` t1 
    JOIN database1.table t2 ON t1.property = t2.`$propertyname`; 
+0

謝謝,但沒有成功,也許我沒有解釋我自己,我編輯並放置了表的結構。 我得到的錯誤,如t2.min不是一個函數和t2。$ propertyname不是一個列,這是真正的它的表名稱 – Helenp