0

これら 2 つのクエリがあり、それらを 1 つに結合したいのですが、どうすればよいかわかりません。

クエリ 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`)
);

私がする必要があるのは、それぞれのコミック アークのアーク テーブルからアーク タイトルを取得することです。

4

2 に答える 2

1

次のように簡単です (必要なフィールドのみを選択して を使用して、2 つのクエリを 1 つに結合します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.'
    )
于 2012-08-22T05:28:06.763 に答える
1

INNER JOIN両方のテーブルにレコードが存在すると思われるため、そのために使用する必要があります。

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

テーブルのすべての詳細comicsとアークのタイトルを表示します

于 2012-08-22T05:30:28.247 に答える