2011-09-02 5 views
-1

올바르지 않은 것은 무엇입니까?Mysql 가입 질문

내가 어떤 데이터를 얻을 수 어차피 ...

SELECT 
    my_site_orders.order_id, 
    my_site_orders.order_orderer_id, 
    my_site_orders.order_ip, 
    my_site_orders.order_time, 
    my_site_orders.order_campaign_id, 
    my_site_orders.order_status, 
    my_site_orders.order_shipment_status, 
    my_site_orders.order_shipping_method, 
    my_site_orders.order1_id, 
    my_site_orders.order1_coupon_id, 
    my_site_orders.order1_amount, 
    my_site_orders.order1_price, 
    my_site_orders.order_cargo_name, 
    my_site_orders.order_cargo_surname, 
    my_site_orders.order_cargo_vatnumber, 
    my_site_orders.order_cargo_line1, 
    my_site_orders.order_cargo_line2, 
    my_site_orders.order_cargo_stateprovince, 
    my_site_orders.order_cargo_district, 
    my_site_orders.order_cargo_city, 
    my_site_orders.order_cargo_contactphone, 
    my_site_orders.order_invoice_name, 
    my_site_orders.order_invoice_surname, 
    my_site_orders.order_invoice_company, 
    my_site_orders.order_invoice_line1, 
    my_site_orders.order_invoice_line2, 
    my_site_orders.order_invoice_vatnumber, 
    my_site_orders.order_invoice_vat, 
    my_site_orders.order_invoice_stateprovince, 
    my_site_orders.order_invoice_district, 
    my_site_orders.order_invoice_city, 
    my_site_orders.order_invoice_contactphone, 
    my_site_orders.order_type, 
    my_site_orders.order_note, 
    my_site_orders.order_hash, 
    my_site_orders.order_bank_hash, 
    my_site_orders.order_phone_number, 
    my_site_orders.order_price, 
    my_site_orders.order_cc_name, 
    my_site_orders.order_instalment_amount, 
    my_site_orders.order_instalment_price, 
    my_site_users.user_name, 
    my_site_users.user_email, 
    my_site_orders.order1_type, 
    my_site_users.user_realname, 
    my_site_users.user_surname, 
    my_site_products.product_brand_id, 
    my_site_products.product_id, 
    my_site_products.product_cat_id, 
    my_site_products.product_title, 
    my_site_products.product_snippet, 
    my_site_products.product_description, 
    my_site_products.product_code, 
    my_site_products.product_normalprice, 
    my_site_products.product_price, 
    my_site_products.product_quantity, 
    my_site_products.product_image1, 
    my_site_products.product_image1_t1, 
    my_site_products.product_image4, 
    my_site_products.product_image4_t1, 
    my_site_products.product_image4_t2, 
    my_site_products.product_image_big4, 
    my_site_products.product_image5, 
    my_site_products.product_image5_t1, 
    my_site_products.product_image5_t2, 
    my_site_products.product_image_big5, 
    my_site_products.product_select_choice_title, 
    my_site_products.product_select_option_title, 
    my_site_products.product_select1, 
    my_site_products.product_select2, 
    my_site_products.product_select3, 
    my_site_products.product_select4, 
    my_site_products.product_select5, 
    my_site_products.product_select6, 
    my_site_products.product_select7, 
    my_site_products.product_select8, 
    my_site_products.product_select9, 
    my_site_products.product_select10, 
    my_site_brands.brand_name, 
    my_site_product_cats.product_cat_name 
FROM 
    my_site_orders 
    INNER JOIN my_site_users ON (my_site_orders.order_orderer_id = my_site_users.user_id) 
    INNER JOIN my_site_products ON (my_site_orders.order1_id = my_site_products.product_id) 
    INNER JOIN my_site_brands ON (my_site_products.product_brand_id = my_site_brands.brand_id) 
    INNER JOIN my_site_product_cats ON (my_site_products.product_cat_id = my_site_product_cats.product_cat_id) 
WHERE 
    my_site_orders.order1_type = my_site_products.product_select1 
OR 
    my_site_orders.order1_type = my_site_products.product_select2 
OR 
    my_site_orders.order1_type = my_site_products.product_select3 
OR 
    my_site_orders.order1_type = my_site_products.product_select4 
OR 
    my_site_orders.order1_type = my_site_products.product_select5 
OR 
    my_site_orders.order1_type = my_site_products.product_select6 
OR 
    my_site_orders.order1_type = my_site_products.product_select7 
OR 
    my_site_orders.order1_type = my_site_products.product_select8 
OR 
    my_site_orders.order1_type = my_site_products.product_select9 
OR 
    my_site_orders.order1_type = my_site_products.product_select10 

하지만 난과 함께 데이터를 얻을 :

SELECT 
    my_site_orders.order_id, 
    my_site_orders.order_orderer_id, 
    my_site_orders.order_ip, 
    my_site_orders.order_time, 
    my_site_orders.order_campaign_id, 
    my_site_orders.order_status, 
    my_site_orders.order_shipment_status, 
    my_site_orders.order_shipping_method, 
    my_site_orders.order1_id, 
    my_site_orders.order1_coupon_id, 
    my_site_orders.order1_amount, 
    my_site_orders.order1_price, 
    my_site_orders.order_cargo_name, 
    my_site_orders.order_cargo_surname, 
    my_site_orders.order_cargo_vatnumber, 
    my_site_orders.order_cargo_line1, 
    my_site_orders.order_cargo_line2, 
    my_site_orders.order_cargo_stateprovince, 
    my_site_orders.order_cargo_district, 
    my_site_orders.order_cargo_city, 
    my_site_orders.order_cargo_contactphone, 
    my_site_orders.order_invoice_name, 
    my_site_orders.order_invoice_surname, 
    my_site_orders.order_invoice_company, 
    my_site_orders.order_invoice_line1, 
    my_site_orders.order_invoice_line2, 
    my_site_orders.order_invoice_vatnumber, 
    my_site_orders.order_invoice_vat, 
    my_site_orders.order_invoice_stateprovince, 
    my_site_orders.order_invoice_district, 
    my_site_orders.order_invoice_city, 
    my_site_orders.order_invoice_contactphone, 
    my_site_orders.order_type, 
    my_site_orders.order_note, 
    my_site_orders.order_hash, 
    my_site_orders.order_bank_hash, 
    my_site_orders.order_phone_number, 
    my_site_orders.order_price, 
    my_site_orders.order_cc_name, 
    my_site_orders.order_instalment_amount, 
    my_site_orders.order_instalment_price, 
    my_site_users.user_name, 
    my_site_users.user_email, 
    my_site_orders.order1_type, 
    my_site_users.user_realname, 
    my_site_users.user_surname, 
    my_site_products.product_brand_id, 
    my_site_products.product_id, 
    my_site_products.product_cat_id, 
    my_site_products.product_title, 
    my_site_products.product_snippet, 
    my_site_products.product_description, 
    my_site_products.product_code, 
    my_site_products.product_normalprice, 
    my_site_products.product_price, 
    my_site_products.product_quantity, 
    my_site_products.product_image1, 
    my_site_products.product_image1_t1, 
    my_site_products.product_image4, 
    my_site_products.product_image4_t1, 
    my_site_products.product_image4_t2, 
    my_site_products.product_image_big4, 
    my_site_products.product_image5, 
    my_site_products.product_image5_t1, 
    my_site_products.product_image5_t2, 
    my_site_products.product_image_big5, 
    my_site_products.product_select_choice_title, 
    my_site_products.product_select_option_title, 
    my_site_products.product_select1, 
    my_site_products.product_select2, 
    my_site_products.product_select3, 
    my_site_products.product_select4, 
    my_site_products.product_select5, 
    my_site_products.product_select6, 
    my_site_products.product_select7, 
    my_site_products.product_select8, 
    my_site_products.product_select9, 
    my_site_products.product_select10, 
    my_site_brands.brand_name, 
    my_site_product_cats.product_cat_name 
FROM 
    my_site_orders 
    INNER JOIN my_site_users ON (my_site_orders.order_orderer_id = my_site_users.user_id) 
    INNER JOIN my_site_products ON (my_site_orders.order1_id = my_site_products.product_id) 
    INNER JOIN my_site_brands ON (my_site_products.product_brand_id = my_site_brands.brand_id) 
    INNER JOIN my_site_product_cats ON (my_site_products.product_cat_id = my_site_product_cats.product_cat_id) 
+1

'my_site_orders.order1_type! = my_site_products.product_select1 {1..10}'때문에 my_site_orders.order1_type에 공통 값이 없습니다. my_site_products.product_select {1..10} – ajreal

+4

[normalizing] (http://en.wikipedia.org/wiki/Database_normalization) 테이블을 고려하셨습니까? – NullUserException

+2

데이터베이스 구조가 잘못되었습니다. "product_image5"또는 "product_select9"라는 필드를 creatin 할 때 뭔가 잘못되었다는 것을 알아야합니다. –

답변

2

첫째, 당신은 많은 관찰 보고서 대신 IN()를 사용할 수 있습니다. 쿼리가 더 짧아지고 읽기 쉬워집니다. 다음으로, order1_type IN(product_select1,product_select2,product_select3,product_select4,product_select5,product_select6,product_select7,product_select8,product_select9,product_select10)으로 주문이없는 것은 분명합니다. 첫 번째 쿼리의 일부 샘플 데이터는 쿼리를 올바르게 다시 작성하는 데 도움이 될 수 있습니다.

+0

첫 번째 쿼리의 결과는 다음과 같습니다. WHERE 구문 : [link] (http://www.2shared.com /document/csHcaa7_/export.html) –