Nette\Database nefunguje automatický left join

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
motorcb
Člen | 551
+
0
-

Zdravím.
Mám následující strukturu MYSQL db:

CREATE TABLE `bazar` (
  `id` INTEGER NULL AUTO_INCREMENT DEFAULT NULL,
  `user_id` INTEGER NULL DEFAULT NULL,
  `shop` VARCHAR(10) NULL DEFAULT NULL,
  `date` DATETIME NULL DEFAULT NULL,
  `title` VARCHAR(100) NULL DEFAULT NULL,
  `text` MEDIUMTEXT NULL DEFAULT NULL,
KEY (`id`, `user_id`),
  PRIMARY KEY (`id`, `user_id`),
  UNIQUE KEY (`id`),
  FULLTEXT KEY (`title`, `text`)
);


CREATE TABLE `bazar_comment` (
  `id` INTEGER NULL AUTO_INCREMENT DEFAULT NULL,
  `bazar_id` INTEGER NULL DEFAULT NULL,
  `user_id` INTEGER NULL DEFAULT NULL,
  `date` DATETIME NULL DEFAULT NULL,
  `text` MEDIUMTEXT NULL DEFAULT NULL,
  PRIMARY KEY (`id`, `bazar_id`, `user_id`)
);

-- ---
-- Foreign Keys
-- ---
ALTER TABLE `bazar_comment` ADD FOREIGN KEY (bazar_id) REFERENCES `bazar` (`id`);


-- ---
-- Table Properties
-- ---
-- ALTER TABLE `bazar` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ALTER TABLE `bazar_category` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Pokouším se vypsat seznam všech položek v tabulce „bazar“ a ke každé počet komentářů (tabulka bazar_comment)

Používám následující dotaz:

$this->context->database->table('bazar')->select('bazar.*')->select('COUNT(bazar_comment:bazar_id) AS commentsCount')->group('id')

Ovšem vykonávání skončí chybou v dotazu:

SELECT `bazar`.*, COUNT(`bazar_comment`.`bazar_id`) AS `commentsCount`
FROM `bazar`
LEFT JOIN `bazar_comment` ON `bazar`.`` = `bazar_comment`.`bazar_id`
GROUP BY `id`

Je špatně najoiněná tabulka bazar, kde chybí název sloupce:
LEFT JOIN bazar_comment ON bazar.`` = bazar_comment.bazar_id

Nevěděl by někdo kde dělám chybu? V návrhu db, nebo snad v kodu?

hrach
Člen | 1834
+
0
-

Pletes si co znamenaji primarni klice. Mas je vicenasobne a proto to nefunguje. Jako primary mej jen id sloupec, u ostatnich si muzes dat unique klic. ;)

motorcb
Člen | 551
+
0
-

hrach:

Ups, díky za připomenutí :) Databáze nyní vypadá takto:
Dochází stále ke stejnému problému :(

CREATE TABLE `bazar` (
  `id` INTEGER NULL AUTO_INCREMENT DEFAULT NULL,
  `user_id` INTEGER NULL DEFAULT NULL,
  `bazar_category_id` INTEGER NULL DEFAULT NULL,
  `shop` VARCHAR(10) NULL DEFAULT NULL,
  `date` DATETIME NULL DEFAULT NULL,
  `title` VARCHAR(100) NULL DEFAULT NULL,
  `text` MEDIUMTEXT NULL DEFAULT NULL,
KEY (`id`),
  PRIMARY KEY (`id`),
  UNIQUE KEY (`id`),
  FULLTEXT KEY (`title`, `text`)
);


CREATE TABLE `bazar_comment` (
  `id` INTEGER NULL AUTO_INCREMENT DEFAULT NULL,
  `bazar_id` INTEGER NULL DEFAULT NULL,
  `user_id` INTEGER NULL DEFAULT NULL,
  `date` DATETIME NULL DEFAULT NULL,
  `text` MEDIUMTEXT NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
);

-- ---
-- Foreign Keys
-- ---
ALTER TABLE `bazar_comment` ADD FOREIGN KEY (bazar_id) REFERENCES `bazar` (`id`);

-- ---
-- Table Properties
-- ---
-- ALTER TABLE `bazar` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ALTER TABLE `bazar_comment` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
hrach
Člen | 1834
+
0
-

Smaz cache;)

motorcb
Člen | 551
+
0
-

hrach napsal(a):

Smaz cache;)

Díky guru, funguje :)
Máš u mne pivo :)