日期:2014-05-17  浏览次数:20444 次

查询product_name字段名该怎么写,着急呀,谁给看看
查询product_name字段名该怎么写,着急呀,谁给看看  
sql="Select top 10" 

sql=sql & " {crm_sale_detail}.detail_id,{crm_sale_detail}.sale_id,"
'sql=sql & " {crm_sale_detail}.product_id,"
sql=sql & "  (Select product_name FROM crm_products WHERE product_id = crm_sale_detail.product_id) As product_name,"
sql=sql & " {crm_sale_detail}.buyNumber from crm_sale_detail"

sql=sql & " where product_name like '%1234%'"  这个地方想查询product_name字段名该怎么写,写了几个方式都不对,是不是不能查询

sql=sql & " where product_name like '%1234%'"   错误

sql=sql & " where crm_products.product_name like '%1234%'"  错误

 

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

yupeigu ,请问where 后面一定要写那么长吗 ,as product_name 为什么不能直接使用这个字段名



Select    (Select product_name FROM crm_products WHERE product_id = crm_sale_detail.product_id) As product_name from crm_sale_detail where  (Select product_name FROM crm_products WHERE product_id = crm_sale_detail.product_id) like '%1234%'

可以进一步简化,但是写法就得改了,改成inner join:

Select  crm_products.product_name 
from crm_sale_detail 
inner join crm_products
        on crm_products.product_id = crm_sale_detail.product_id


where crm_products.product_name like '%1234%'


如果有多个地方需要这么操作,那么多个inner join  混在一起是不是SQL 语句容易乱,


不会的,一般的语句,稍微复杂一点,都会用inner join的,这种写法不仅速度更快,而且结构也更加清晰。

而子查询,效率可能会低一点,而且写法不是很简洁,特别是在表比较多的时候