RE: Tree-like structure: make it simply

2003-12-05 Thread Dan Greene
how about recreating the table w/o the autoincrement, then reload the data, then alter 
table to reimplement the autoincrement?

 -Original Message-
 From: Matthew [mailto:[EMAIL PROTECTED]
 Sent: Thursday, December 04, 2003 7:12 PM
 To: Alex E.Wintermann; [EMAIL PROTECTED]
 Subject: Re: Tree-like structure: make it simply
 
 
 I think I can help with questions 1 and 3... see below,
 
 
 
 - Original Message - 
 From: Alex E.Wintermann [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Thursday, December 04, 2003 11:44 PM
 Subject: Tree-like structure: make it simply
 
 
  Hello mysql,
 
  I have some table:
  /* BEGIN DUMP */
  CREATE TABLE `sp_tovar_vid` (
`id` int(11) NOT NULL auto_increment,
`id_tovar_vid` int(11) NOT NULL default '0',
`name` varchar(100) NOT NULL default '',
`description` varchar(255) NOT NULL default '',
UNIQUE KEY `id` (`id`)
  );
 
  INSERT INTO `sp_tovar_vid` VALUES (0, 0, 'root', 'root category');
  INSERT INTO `sp_tovar_vid` VALUES (7, 0, 'cat.1', '');
  INSERT INTO `sp_tovar_vid` VALUES (8, 0, 'cat.2', '');
  INSERT INTO `sp_tovar_vid` VALUES (9, 0, 'cat.3', '');
  INSERT INTO `sp_tovar_vid` VALUES (10, 0, 'cat.4', '');
  INSERT INTO `sp_tovar_vid` VALUES (11, 0, 'cat.5', '');
  INSERT INTO `sp_tovar_vid` VALUES (12, 7, 'subcat 1', '(to cat.1)');
  INSERT INTO `sp_tovar_vid` VALUES (13, 7, 'subcat 2', '(to cat.1)');
  INSERT INTO `sp_tovar_vid` VALUES (14, 7, 'subcat 3', '(to cat.1)');
  INSERT INTO `sp_tovar_vid` VALUES (15, 9, 'subcat 1', '(to cat.3)');
  INSERT INTO `sp_tovar_vid` VALUES (16, 9, 'subcat 2', '(to cat.3)');
  INSERT INTO `sp_tovar_vid` VALUES (17, 9, 'subcat 3', '(to cat.3)');
  INSERT INTO `sp_tovar_vid` VALUES (18, 13, 'subsubcat 1', 
 '(to subcat.2
  to cat.1)');
  /* END DUMP /
 
  _QUESTION 1_: in what way should i run query to restore table with
  `id`' like in dump? (`id` is auto_increment)
 
 
 
 either omit the `id` field when re-loading the data, e.g.
 
 INSERT INTO `sp_tovar_vid` 
 (`id_tovar_vid`,`name`,`description`) VALUES (0,
 'root', 'root category');
 
 or, replace the `id` values with an empty string when 
 re-loading the table
 data, e.g.
 
 INSERT INTO `sp_tovar_vid` VALUES ('', 0, 'cat.1', '');
 
 both techniques prompt mysql to reassign the `id` values.
 
 note that I do not think it is wise/possible to run a query 
 to restore (or
 clean up) the auto_increment values without re-loading the table data.
 
 
 
 
  _QUESTION 2_: how to display table with columns=
  ('parent_category.name' ,'category.name')?
  i tried this:
  /***/
  SELECT t1.`name`,t2.`name` FROM `sp_tovar_vid` AS t1, `sp_tovar_vid`
  AS t2 WHERE t1.`id`=t2.`id_tovar_vid` ORDER BY t1.`name`,t2.`name`;
  /***/
  How to make it more simply?
 
  _QUESTION 3_: how to display string:
  subsubcat 1 - subcat.2 - cat.1
  if we have only `id`=18 ?
 
 
 use SELECT IF(id=18, true_expression, false expression) FROM table...
 
 I'm not clear what you mean by subsubcat 1 - subcat.2 - 
 cat.1... minus, or
 some sort of string concatenation?
 
 true expression might be field1 - field2, or CONCAT(field1, 
 field2, ...)
 
 
 
  -- 
  Best regards,
   Alex  mailto:[EMAIL PROTECTED]
 
 
  -- 
  MySQL General Mailing List
  For list archives: http://lists.mysql.com/mysql
  To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]
 
 
 
 
 
 
 -- 
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]
 
 

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re[2]: Tree-like structure: make it simply

2003-12-05 Thread Alex E.Wintermann
Hello Matthew,

Friday, December 5, 2003, 2:12:08 AM, you wrote:

thanks, but some more see below.

[skipped]
 I have some table:
 /* BEGIN DUMP */
 CREATE TABLE `sp_tovar_vid` (
   `id` int(11) NOT NULL auto_increment,
   `id_tovar_vid` int(11) NOT NULL default '0',
   `name` varchar(100) NOT NULL default '',
   `description` varchar(255) NOT NULL default '',
   UNIQUE KEY `id` (`id`)
 );

 INSERT INTO `sp_tovar_vid` VALUES (0, 0, 'root', 'root category');
 INSERT INTO `sp_tovar_vid` VALUES (7, 0, 'cat.1', '');
 INSERT INTO `sp_tovar_vid` VALUES (8, 0, 'cat.2', '');
 INSERT INTO `sp_tovar_vid` VALUES (9, 0, 'cat.3', '');
 INSERT INTO `sp_tovar_vid` VALUES (10, 0, 'cat.4', '');
 INSERT INTO `sp_tovar_vid` VALUES (11, 0, 'cat.5', '');
 INSERT INTO `sp_tovar_vid` VALUES (12, 7, 'subcat 1', '(to cat.1)');
 INSERT INTO `sp_tovar_vid` VALUES (13, 7, 'subcat 2', '(to cat.1)');
 INSERT INTO `sp_tovar_vid` VALUES (14, 7, 'subcat 3', '(to cat.1)');
 INSERT INTO `sp_tovar_vid` VALUES (15, 9, 'subcat 1', '(to cat.3)');
 INSERT INTO `sp_tovar_vid` VALUES (16, 9, 'subcat 2', '(to cat.3)');
 INSERT INTO `sp_tovar_vid` VALUES (17, 9, 'subcat 3', '(to cat.3)');
 INSERT INTO `sp_tovar_vid` VALUES (18, 13, 'subsubcat 1', '(to subcat.2
 to cat.1)');
 /* END DUMP /

[skipped]
 _QUESTION 2_: how to display table with columns=
 ('parent_category.name' ,'category.name')?
 i tried this:
 /***/
 SELECT t1.`name`,t2.`name` FROM `sp_tovar_vid` AS t1, `sp_tovar_vid`
 AS t2 WHERE t1.`id`=t2.`id_tovar_vid` ORDER BY t1.`name`,t2.`name`;
 /***/
 How to make it more simply?

 _QUESTION 3_: how to display string:
 subsubcat 1 - subcat.2 - cat.1
 if we have only `id`=18 ?


M use SELECT IF(id=18, true_expression, false expression) FROM table...
M I'm not clear what you mean by subsubcat 1 - subcat.2 - cat.1... minus, or
M some sort of string concatenation?
M true expression might be field1 - field2, or CONCAT(field1, field2, ...)

elucidation: i need to run recurse search to build string shown.
it means: if we have `id`=18, we must build following string after
mentioned recurse search runnnig.

string: subsubcat 1 + subcat 2 + cat.1 + root

it's tree:
/**/
root (`id`=0, `parent`=0)
|--cat.1 (`id`=7, `parent`=0)
| |-subcat 1
| |--subcat 2 (`id`=13, `parent`=7)
| | |-subsubcat 1 (`id`=18, `parent`=13)
| |-subcat 3
|-cat.2
|--cat.3
| |-subcat 1
| |-subcat 2
| |-subcat 3
|-cat.4
|-cat.5
/**/

-- 
Best regards,
 Alexmailto:[EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Tree-like structure: make it simply

2003-12-04 Thread Alex E.Wintermann
Hello mysql,

I have some table:
/* BEGIN DUMP */
CREATE TABLE `sp_tovar_vid` (
  `id` int(11) NOT NULL auto_increment,
  `id_tovar_vid` int(11) NOT NULL default '0',
  `name` varchar(100) NOT NULL default '',
  `description` varchar(255) NOT NULL default '',
  UNIQUE KEY `id` (`id`)
);

INSERT INTO `sp_tovar_vid` VALUES (0, 0, 'root', 'root category');
INSERT INTO `sp_tovar_vid` VALUES (7, 0, 'cat.1', '');
INSERT INTO `sp_tovar_vid` VALUES (8, 0, 'cat.2', '');
INSERT INTO `sp_tovar_vid` VALUES (9, 0, 'cat.3', '');
INSERT INTO `sp_tovar_vid` VALUES (10, 0, 'cat.4', '');
INSERT INTO `sp_tovar_vid` VALUES (11, 0, 'cat.5', '');
INSERT INTO `sp_tovar_vid` VALUES (12, 7, 'subcat 1', '(to cat.1)');
INSERT INTO `sp_tovar_vid` VALUES (13, 7, 'subcat 2', '(to cat.1)');
INSERT INTO `sp_tovar_vid` VALUES (14, 7, 'subcat 3', '(to cat.1)');
INSERT INTO `sp_tovar_vid` VALUES (15, 9, 'subcat 1', '(to cat.3)');
INSERT INTO `sp_tovar_vid` VALUES (16, 9, 'subcat 2', '(to cat.3)');
INSERT INTO `sp_tovar_vid` VALUES (17, 9, 'subcat 3', '(to cat.3)');
INSERT INTO `sp_tovar_vid` VALUES (18, 13, 'subsubcat 1', '(to subcat.2
to cat.1)');
/* END DUMP /

_QUESTION 1_: in what way should i run query to restore table with
`id`' like in dump? (`id` is auto_increment)

_QUESTION 2_: how to display table with columns=
('parent_category.name' ,'category.name')?
i tried this:
/***/
SELECT t1.`name`,t2.`name` FROM `sp_tovar_vid` AS t1, `sp_tovar_vid`
AS t2 WHERE t1.`id`=t2.`id_tovar_vid` ORDER BY t1.`name`,t2.`name`;
/***/
How to make it more simply?

_QUESTION 3_: how to display string:
subsubcat 1 - subcat.2 - cat.1
if we have only `id`=18 ?

-- 
Best regards,
 Alex  mailto:[EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Tree-like structure: make it simply

2003-12-04 Thread Matthew
I think I can help with questions 1 and 3... see below,



- Original Message - 
From: Alex E.Wintermann [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, December 04, 2003 11:44 PM
Subject: Tree-like structure: make it simply


 Hello mysql,

 I have some table:
 /* BEGIN DUMP */
 CREATE TABLE `sp_tovar_vid` (
   `id` int(11) NOT NULL auto_increment,
   `id_tovar_vid` int(11) NOT NULL default '0',
   `name` varchar(100) NOT NULL default '',
   `description` varchar(255) NOT NULL default '',
   UNIQUE KEY `id` (`id`)
 );

 INSERT INTO `sp_tovar_vid` VALUES (0, 0, 'root', 'root category');
 INSERT INTO `sp_tovar_vid` VALUES (7, 0, 'cat.1', '');
 INSERT INTO `sp_tovar_vid` VALUES (8, 0, 'cat.2', '');
 INSERT INTO `sp_tovar_vid` VALUES (9, 0, 'cat.3', '');
 INSERT INTO `sp_tovar_vid` VALUES (10, 0, 'cat.4', '');
 INSERT INTO `sp_tovar_vid` VALUES (11, 0, 'cat.5', '');
 INSERT INTO `sp_tovar_vid` VALUES (12, 7, 'subcat 1', '(to cat.1)');
 INSERT INTO `sp_tovar_vid` VALUES (13, 7, 'subcat 2', '(to cat.1)');
 INSERT INTO `sp_tovar_vid` VALUES (14, 7, 'subcat 3', '(to cat.1)');
 INSERT INTO `sp_tovar_vid` VALUES (15, 9, 'subcat 1', '(to cat.3)');
 INSERT INTO `sp_tovar_vid` VALUES (16, 9, 'subcat 2', '(to cat.3)');
 INSERT INTO `sp_tovar_vid` VALUES (17, 9, 'subcat 3', '(to cat.3)');
 INSERT INTO `sp_tovar_vid` VALUES (18, 13, 'subsubcat 1', '(to subcat.2
 to cat.1)');
 /* END DUMP /

 _QUESTION 1_: in what way should i run query to restore table with
 `id`' like in dump? (`id` is auto_increment)



either omit the `id` field when re-loading the data, e.g.

INSERT INTO `sp_tovar_vid` (`id_tovar_vid`,`name`,`description`) VALUES (0,
'root', 'root category');

or, replace the `id` values with an empty string when re-loading the table
data, e.g.

INSERT INTO `sp_tovar_vid` VALUES ('', 0, 'cat.1', '');

both techniques prompt mysql to reassign the `id` values.

note that I do not think it is wise/possible to run a query to restore (or
clean up) the auto_increment values without re-loading the table data.




 _QUESTION 2_: how to display table with columns=
 ('parent_category.name' ,'category.name')?
 i tried this:
 /***/
 SELECT t1.`name`,t2.`name` FROM `sp_tovar_vid` AS t1, `sp_tovar_vid`
 AS t2 WHERE t1.`id`=t2.`id_tovar_vid` ORDER BY t1.`name`,t2.`name`;
 /***/
 How to make it more simply?

 _QUESTION 3_: how to display string:
 subsubcat 1 - subcat.2 - cat.1
 if we have only `id`=18 ?


use SELECT IF(id=18, true_expression, false expression) FROM table...

I'm not clear what you mean by subsubcat 1 - subcat.2 - cat.1... minus, or
some sort of string concatenation?

true expression might be field1 - field2, or CONCAT(field1, field2, ...)



 -- 
 Best regards,
  Alex  mailto:[EMAIL PROTECTED]


 -- 
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]






-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]