CakePHP adlandırma kurallarını izleyen bir HABTM ilişkisiyle bağlantılı olan 3 blog tablosum var: posts - post_tag_links - tags.CakePHP: backtick sorgusu ile normal sorgu arasındaki fark
Belirli bir etikete bağlı tüm yayınların (ör. "Tasarım") bir dizi oluşturmaya çalışıyorum. Bu sorgu benim için çalışıyor:, bu "sorguyu kullanmayın daha iyidir bazı en iyi uygulamayı yapmak
SELECT
Post.id,
Post.title
FROM
posts AS Post
LEFT JOIN
post_tag_links AS PostTagLink
ON Post.id = PostTagLink.post_id
LEFT JOIN
tags AS Tag
ON Tag.id = PostTagLink.tag_id
WHERE
Tag.slug = 'design'
GROUP BY
Post.id
AMA ...:
$this->Post->query("
SELECT
Post.id, Post.title FROM posts AS Post
LEFT JOIN
post_tag_links AS PostTagLink ON Post.id = PostTagLink.post_id
LEFT JOIN
tags AS Tag ON Tag.id = PostTagLink.tag_id
WHERE
Tag.slug = 'design'
GROUP BY
Post.id"
);
CakePHP'nin sonra aşağıdaki sorgu oluşturur ve bana 4 sonuç verdi " yöntem. Bu yüzden "Tüm bulmak" yöntemi denedi:
$this->Post->find('all', array(
'fields' => array(
'Post.id',
'Post.title'
),
'joins' => array(
array(
'table' => 'post_tag_links',
'alias' => 'PostTagLink',
'type' => 'LEFT',
'conditions' => array(
'Post.id' => 'PostTagLink.post_id'
)
),
array(
'table' => 'tags',
'alias' => 'Tag',
'type' => 'LEFT',
'conditions' => array(
'Tag.id' => 'PostTagLink.tag_id',
)
)
),
'conditions' => array(
'Tag.slug' => 'design'
),
'group' => 'Post.id'
)
));
CakePHP'nin sonra aşağıdaki sorgu oluşturur ve NO tek bir sonuç verdi: deneme yanılma bir sürü sonra
SELECT
`Post`.`id`,
`Post`.`title`
FROM
`kattenbelletjes`.`posts` AS `Post`
LEFT JOIN
`kattenbelletjes`.`post_tag_links` AS `PostTagLink`
ON (
`Post`.`id` = 'PostTagLink.post_id'
)
LEFT JOIN
`kattenbelletjes`.`tags` AS `Tag`
ON (
`Tag`.`id` = 'PostTagLink.tag_id'
)
WHERE
`Tag`.`slug` = 'design'
GROUP BY
`Post`.`id
, Sorunun keşfetti CakePHP'nin bu son sorguyu oluştururken oluşturduğu backticks.
Soruma soru: backticks ve backticks olmayan bir sorgu arasındaki fark nedir? Ve bu backtickleri CakePHP'de nasıl bırakabilirsin?
teşekkürler; tüm yaptıkları tanımlayıcıları kaçıyor gibi)
Bana bu kadar çabuk yardım edebileceğine sevindim çünkü oldukça uzun zamandır arıyordum. Çok teşekkür ederim ndm! – Sam