私はたくさんの投稿、本、視聴したビデオなどを読みましたが、SQL JOINS はまったく意味がありませんでした... =/
それで、これが契約です...
3 つのテーブル:
CREATE TABLE IF NOT EXISTS `feature` (
`feature_id` INT NOT NULL AUTO_INCREMENT ,
`title` VARCHAR(45) NOT NULL ,
`description` TEXT NOT NULL ,
PRIMARY KEY (`feature_id`) )
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `requirement` (
`requirement_id` INT NOT NULL AUTO_INCREMENT ,
`title` VARCHAR(45) NOT NULL ,
`description` TEXT NOT NULL ,
PRIMARY KEY (`requirement_id`) ,
UNIQUE INDEX `title_UNIQUE` (`title` ASC) )
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `feature_requirement` (
`fk_feature_id` INT NOT NULL ,
`fk_requirement_id` INT NOT NULL ,
PRIMARY KEY (`fk_feature_id`, `fk_requirement_id`) ,
INDEX `fk_feature_requirement_requirement1` (`fk_requirement_id` ASC) ,
INDEX `fk_feature_requirement_feature1` (`fk_feature_id` ASC) )
ENGINE = InnoDB;
一部の機能には複数の要件があり、一部の機能には同じ要件があります (つまり、同じ要件が複数の機能に適用されます)。
特定の機能のすべての要件を (feature_id で) 選択できるようにしたいので、これを VIEW にしようとしています。
「不明な列」および「一意でないエイリアス」に関する多くのエラー メッセージの後。私はついにこれを機能させました:
CREATE VIEW `project_feature_requirement` AS
SELECT r.*
FROM `requirement` `r`
INNER JOIN `feature_requirement` `fr`
on `r`.`requirement_id` = `fr`.`fk_requirement_id`
INNER JOIN `feature` `f`
on `fr`.`fk_feature_id` = `f`.`feature_id`
ただし、それはrequirement_id、title、および説明をSELECTするだけです。...これは役に立たない
同じタイプのクエリになるように、他に 4 つの VIEW を作成する必要があります。
どんな助けでも大歓迎です!
私のスキーマをクエリし、「ウィザード」または何かを実行して、必要なテーブル/列と選択したい列を指定してクエリを作成する無料のプログラムはありますか??? そのようなユーティリティで遊ぶことができれば、最終的にそれを理解できるかもしれません。
再度、感謝します!トッド