Skip to main content

MySQL query to list Items and its categories.There are tables for Items, Categories and Item_category relation. One item may fall in different categories. In the result there should be no repeation of records and Categories should be comma separated.


There is an ITEM table , CATEGORY table and an ITEM_CATEGORY relation table. Items may fall in multiple categories "Item" table has item id and item name.  "cat" table has Category Id and Category Name. There is a third table  to store the item category relation. "Item_cat" table  contains Itm_Id (item id) and cat_Id (category id).


Here the question is how to generate a result like this

ItmName  ##    Category
Item1 ##    Cat1,Cat3
Item2 ##    Cat2
Item3 ##    Cat1,Cat4
Item3 ##    Cat1

Sample MySQL query to list Items and its categories. In this example there are tables for Items, Categories and Item_category relation. One item may fall in different categories. In the result there should be no repeat of records and the categories should be comma separated.


The result should contain Item name and comma seperated category name to which the item belongs to.

Come on let's do it :)




Step1: Create Category table


CREATE TABLE `cat` (  `CId` int(11) NOT NULL AUTO_INCREMENT,  `CName` varchar(10) NOT NULL,  PRIMARY KEY (`CId`))

Structure of category table:
 "cat" table
 1     CId     int(11)    
 2     CName     varchar(20)



data in  "cat" table  ( Item category )
CId     CName
1     SUV
2     Sedan
3     F1 Race
4     MultiAxl



 Step2:Create Item table

CREATE TABLE `item` (  `Id` int(11) NOT NULL AUTO_INCREMENT,  `ItmName` varchar(10) NOT NULL,  PRIMARY KEY (`Id`))

Structure of item table:

 "item" table
 1     Id     int(11)    
 2     ItmName varchar(15)



 data in  "item" table
Id     ItmName
1     Maruthi 800
2     Punto
3   XLT Terran
4     Sienna




 Step3:   Create Item category relation table

 CREATE TABLE `Item_cat` (  `Itm_Id` int(11) NOT NULL,  `cat_Id` int(11) NOT NULL)

  "Item_cat" table    ( Item category relation)
 1     Itm_Id     int(11)        
 2     cat_Id     int(11)



data in Item category relation  ( "Item_cat" ) table

Itm_Id     cat_Id
1     1
1     2
2     1
3     1
3     4
2     3



Step 4 : Execute query

 SELECT ItmName, GROUP_CONCAT(CName SEPARATOR ',') as Category FROM (select I.ItmName,C.CName
  from item I
    left join Item_cat CI on (CI.itm_id = I.ID)
    left join cat C on( C.CId = CI.cat_id )) T GROUP BY ItmName






Final Result 
ItmName  ##    Category
Maruthi 800 ##    SUV,Sedan
Punto ##    SUV,F1 Race
Sienna ##    NULL
XLT Terran ##    SUV,MultiAxl   


Ex: here Maruti 80 comes under 2 categores SUV and sedan

Popular posts from this blog

Sachin Tendulkar's emotional farewell Speech at Wankhede Stadium, Mumbai - Full Text and Video

Full Text and Video of Sachin Tendulkar's emotional farewell Speech on Nov 16, 2014 On November 16, 2013 - Sachin Ramesh Tendulkar played his last international cricket match against West-Indies at the at Wankhede Stadium, Mumbai. After the match he gave an emotional farewell speech. No one would be able forget the speech. The eyes of the gathered people were tearfull. Through out the speech Sachin thanked each and everyone who supported and encouraged him to build up his glorius career which spanned 24 years.

How to loop through the items in a select box using Javascript?

Looping through the items in a select box using JS Use the code given below to parse through the options in a select box and alert the Text and Value of each options. you can alter the function as per your need. sample code is given below: <form> <select id="test" name="test"> <option value="First Value" >First Text</option> <option value="Second Value" >Second Text</option> <option value="Third Value" >Third Text</option> <option value="Fourth Value" >Fourth Text</option> <option value="Fifth Value" >Fifth Text</option> </select> <input type="button" value="Check" onclick="loopSelectBox('test')" > </form> <script> function loopSelectBox(selectBoxId){ var obj=document.getElementById(selectBoxId); for(i=0; i < obj.options.length ;i++){ alert("Value :...

Autobiography by Cricket legend Sachin Tendulkar "Sachin Tendulkar - Playing it My Way : My Autobiography"

Autobiography by Cricket legend Sachin Tendulkar Cricket batting legend Sachin Ramesh Tendulkar's  autobiography was released on November 5, 2014 in a high profile launch function in Mumbai. . Earlier  on his Twitter page Sachin has announced the release date of his Autobiography " Sachin Tendulkar - Playing it My Way : My Autobiography "   as November 6th 2014 , but the book was released a day earlier. It took three years to write this book which he says as the Second innings of his life. Sachin Ramesh Tendulkar, the all time Genius of World Cricket was born on April 24, 1973 at Bombay (now Mumbai) in Maharashtra. He hold the record for scoring most runs and hundreds in Tests and ODIs. He scored a total of more than 34000 runs from One day Internationals (ODI's) and tests. He was part of the World cup winning team of 2011. He was a great all rounder. His  debut match was against    Pakistan  at Karachi during Nov 15-20, 1989. He played h...


Urgent Openings for PHP trainees, Andriod / IOS developers and PHP developers in Kochi Trivandrum Calicut and Bangalore. Please Send Your updated resumes to recruit.vo@gmail.com   Read more »
Member
Search This Blog