2012-08-22 59 views
0

我有這兩個查詢,我想加入他們,但我不確定如何去做。PHP/MYSQL - 哪個連接語句用來簡化我的查詢?

查詢1:

$query = "SELECT * FROM ".$db_tbl_comics." WHERE ".$db_fld_comics_publisher."='".$pub_id."' 
AND ".$db_fld_comics_active."='1' GROUP BY ".$db_fld_comics_arc; 

問題2:

$q2 = mysql_query('SELECT '.$db_fld_arcs_title.' FROM '.$db_tbl_arcs.' 
WHERE '.$db_fld_arcs_id.'="'.$result[$db_fld_comics_arc].'"'); 

漫畫表:

CREATE TABLE IF NOT EXISTS `comics` (
    `id` varchar(255) NOT NULL, 
    `arc` int(255) NOT NULL, 
    `title` varchar(255) NOT NULL, 
    `issue` decimal(5,1) DEFAULT NULL, 
    `price` decimal(10,2) NOT NULL, 
    `plot` longtext NOT NULL, 
    `publisher` int(255) NOT NULL, 
    `isbn` varchar(255) NOT NULL, 
    `published` date NOT NULL, 
    `cover` varchar(255) NOT NULL DEFAULT './images/nopic.jpg', 
    `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `views` int(255) NOT NULL DEFAULT '0', 
    `active` int(1) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `arc` (`arc`,`title`,`issue`,`publisher`) 
); 

弧表:

CREATE TABLE IF NOT EXISTS `arcs` (
    `id` int(255) NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) NOT NULL, 
    `plot` longtext NOT NULL, 
    `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `title` (`title`) 
); 

我需要做的是從arcs表中爲相應的漫畫弧獲取Arcs標題。

+0

我想知道什麼是在漫畫表弧和標題的值,如果這兩個表中的標題值相同,則避免了弧形的標題它在漫畫,你可以創建一個約束外鍵爲弧關鍵字漫畫表 – gks

回答

1

您需要使用INNER JOIN的,因爲我假定記錄都存在於兩個表。

SELECT a.*, b.title 
FROM comics a INNER JOIN arcs b 
      on a.id = b.id 
WHERE a.Title = 'VALUEHERE' 

顯示從comics表中的所有細節和

+0

老實說我在這裏丟了。有什麼價值?!?和2個表相關如下:comics.arc = arc.id – rackemup420

+0

實際上這是一個可選條件。 (*你可以刪除它,如果你沒有條件*)'valuehere'的值是針對漫畫的特定標題。 –

1

一樣簡單(在一個連接2個查詢,通過只選擇所需的字段,並使用IN):

SELECT 
    '.$db_fld_arcs_title.' 
    FROM '.$db_tbl_arcs.' 
    WHERE '.$db_fld_arcs_id.' IN (
     SELECT '.$db_fld_comics_arc.' 
      FROM '.$db_tbl_comics.' 
      WHERE '.$db_fld_comics_publisher.'='".$pub_id."' 
      AND '.$db_fld_comics_active.'='1' GROUP BY '.$db_fld_comics_arc.' 
    ) 
+0

+1擊敗我16秒(看起來像一個更好的答案!) – Fluffeh

+0

謝謝@Fluffeh :) –

+0

所以我仍然可以拉出所有的漫畫信息從這個查詢的漫畫表? – rackemup420