|
goodfella
Starting Member
1 Post |
Posted - 2009-04-09 : 13:05:56
|
| Hello,I have the following tables: tbl_Products, tbl_Categories, tbl_CategoryFields, tbl_ProductDetailsTexttbl_Products houses basic product data, such as ID, CategoryID, Title, Description, Body, Date, Status, etc... tbl_Categories has ID, ParentCategoryID, Title, etc... tbl_CategoryFields has custom fields that the user can add in a CMS for specific categories. For example, Category A can have Brand, Size and Color. Where Category B would have Brand, Model Number, Color, Dimensions. Then, each product will have values in the tbl_ProductDetailsText table based on the category for which they belong to and associated with the CategoryFieldID.tbl_CategoryFieldsID (int)CategoryID (int)Title (varchar)FieldType (int)Status (int)tbl_ProductDetailsTextProductID (int)CategoryFieldID (int)CategoryFieldItem (varchar)The following query gives me a correct result:SELECT tbl_Products.ID, tbl_Products.CategoryID, tbl_Products.Title, tbl_Products.[Description], tbl_Products.Body, tbl_Products.DateCreated, tbl_Products.DateUpdated, tbl_Products.ManufacturerID, tbl_Products.ManufacturerLocationID, tbl_Products.[Status]FROM tbl_Products, tbl_ProductDetailsTextWHEREtbl_Products.ID = tbl_ProductDetailsText.ProductID ANDtbl_Products.CategoryID = 87 AND (tbl_ProductDetailsText.CategoryFieldID = 670 AND CAST(tbl_ProductDetailsText.CategoryFieldItem AS INT) >= 0 AND CAST(tbl_ProductDetailsText.CategoryFieldItem AS INT) <= 999)However, when I want to add in another ProductDetailsText (i.e Size & Brand), I get no results, even though they exist:SELECT tbl_Products.ID, tbl_Products.CategoryID, tbl_Products.Title, tbl_Products.[Description], tbl_Products.Body, tbl_Products.DateCreated, tbl_Products.DateUpdated, tbl_Products.ManufacturerID, tbl_Products.ManufacturerLocationID, tbl_Products.[Status]FROM tbl_Products, tbl_ProductDetailsTextWHEREtbl_Products.ID = tbl_ProductDetailsText.ProductID ANDtbl_Products.CategoryID = 87 AND (tbl_ProductDetailsText.CategoryFieldID = 670 AND CAST(tbl_ProductDetailsText.CategoryFieldItem AS INT) >= 0 AND CAST(tbl_ProductDetailsText.CategoryFieldItem AS INT) <= 999) AND(tbl_ProductDetailsText.CategoryFieldID = 671 AND tbl_ProductDetailsText.CategoryFieldItem = 'Nike')Nike products with a size between 0 and 999 exist in the database, but nothing is being retrieved. To me it seems as though something fundamental is wrong or I need a JOIN, which I am not familiar with. Your help would be appreciated. Thank you! |
|
|
DonAtWork
Master Smack Fu Yak Hacker
2167 Posts |
Posted - 2009-04-09 : 14:26:23
|
| If you are not familiar with JOINs, then follow the ultra basic links in my signature. They are a BOON to new SQL developers![Signature]For fast help, follow this link:http://weblogs.sqlteam.com/brettk/archive/2005/05/25.aspxLearn SQL or How to sell Used CarsFor ultra basic questions, follow these links.http://www.sql-tutorial.net/ http://www.firstsql.com/tutor.htm http://www.w3schools.com/sql/default.asp |
 |
|