0

JOIN categories c ON c.id = i.categoryif post_typeis 1を使用したいのですがc.title AS category_name,SELECTそれ以外の場合は使用したいので、クエリで使用しないJOIN categories c ON c.id = i.categoryc.title AS category_name,ください。結合にケースを使用していますが、SQL コマンドが正しくありません。私を助けてください。すべての説明で、私の質問の意味は、この以下のコマンドを if post_typeis 1 join に変更する方法です 結合が機能しない必要があります

SELECT SQL_CALC_FOUND_ROWS
       i. * , 
       c.title AS category_name, 
       s.title AS status_title, 
       i.thumb_image, 
       CONCAT( u.name, ' ', u.family ) AS author
FROM contents i
LEFT JOIN categories c 
  ON i.category = CASE post_type WHEN 1 then c.id END 
JOIN users u ON u.id = i.posted_by
JOIN status_topics s ON s.id = i.t_status
WHERE i.id = 2
4

1 に答える 1

0

私は常にこれを行いLEFT JOIN、列自体に条件を設定します。

SELECT SQL_CALC_FOUND_ROWS
   i. * , 
   IF(i.post_type = 1, c.title, NULL) AS category_name, 
   s.title AS status_title, 
   i.thumb_image, 
   CONCAT( u.name, ' ', u.family ) AS author
FROM contents i
LEFT JOIN categories c ON i.category = c.id
JOIN users u ON u.id = i.posted_by
JOIN status_topics s ON s.id = i.t_status
WHERE i.id = 2
于 2013-06-16T06:55:01.827 に答える