0

ツリーテーブルを持っています:

Emails_blocks

blocks_id  blocks_pos  url_type  blocks_folder  
1          1           1         emails_block   
2          2           1         emails_show    
3          3           1         emails_add     
4          4           0         emails_share   

Emails_blocks_text

texts_id  blocks_id  langs_code  
2         1          ru          
1         1          ua          
3         2          ua          

Emails_blocks_aliases

blocks_id  aliases_name  
1          news          
2          drafts        

そしてクエリがあります:

SELECT `blocks_id`,  `blocks_folder`, `blocks_name`, `aliases_name`, `langs_code`
FROM `a_emails_blocks`
LEFT JOIN `a_emails_blocks_text` USING(`blocks_id`)
LEFT JOIN `a_emails_blocks_aliases` USING(`blocks_id`)
GROUP BY `blocks_id`
ORDER BY FIELD(`a_emails_blocks_text`.`langs_code`, 'ua', 'ru')

しかし、結果として、langs_code 'ua' ではなく、blocks_id = 1があり、langs コード 'ru' があります。 別のテーブルから注文しない理由がわかりません。

blocks_id  blocks_folder  aliases_name  langs_code 

1          emails_block   news          ru          
2          emails_show    drafts        ua          
3          emails_add                               
4          emails_share                             
4

1 に答える 1

0

あなたSELECTが持っているフィールドGROUP BYまたは集計結果のみを使用する必要があります

実際にGROUP BYは、集計関数(合計、カウント、平均など)がないため、必要ありません

于 2013-06-12T09:14:57.710 に答える