2017-09-09 10 views
1

に私はこのクエリでe.*at_firstname.valueの使用を理解していない:*との意味。 MySQLの

SELECT e.* 
    , at_firstname.value AS firstname 
    FROM customer_entity AS e 
INNER 
    JOIN customer_entity_varchar AS at_firstname 
    ON (at_firstname.entity_id = e.entity_id) 
    AND (at_firstname.attribute_id = '5') 
WHERE (e.entity_type_id = '1') 
    AND (at_firstname.value = 'sander') 
ORDER 
    BY e.email ASC 

答えて

2

あなたは

SELECT e.*, at_firstname.value AS firstname 
    FROM `customer_entity` AS `e` 
    INNER JOIN at_firstname ON 
    at_firstname.entity_id = e.entity_id AND at_firstname.attribute_id = '5' 
    WHERE e.entity_type_id = '1' AND at_firstname.value = 'sander' ORDER BY e.email ASC 

eは、テーブルcustomer_entity(e AS customer_entity)ので、電子の別名であることを意味する可能性があります。*は、テーブルcustomer_entityのすべての列を意味します。 FIRSTNAMEがのTableName.ColumnNameは別名firtsname用を使用してのショーであることを意味AS at_firstname.value参加条件は唯一のテーブル名ではなく、とにかくTABLE.COLUMN

sintaxを必要とするので

at_firstname.valueは誤りです元のクエリが正しい場合は、列

は、それ以外の場合はファーストネーム AS at_firstname.valueは、データベースat_firstnameのための表の別名at_firstname(列名値)の別名で、テーブル値

PSは使用しません条件wの周りにunuseful()鶏は必要ありません

+1

@ user2366074私の答えが正しい場合はそれをマークしてください...どうぞこちらをご覧ください http://meta.stackexchange.com/questions/5234 /やあ - 受付 - 応答 - 仕事 – scaisEdge

0

e.*を使用すると、テーブルeからすべての列を選択します。
at_firstname.valueただの列valueat_firstnameから。

+1

おかげで、あなたが好む答えを記入してください。 – Ghemon

+1

e。*はすべてのCOLUMNSを選択しますが、行数を限定するものは何もありません –