0

mysqlに子がない最終カテゴリを取得する方法は?
下の表から取得したい結果は
3,5,6 です。
子カテゴリはありません。

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `cat`
-- ----------------------------
DROP TABLE IF EXISTS `cat`;
CREATE TABLE `cat` (
  `categories_id` int(10) NOT NULL auto_increment,
  `parent_id` int(10) NOT NULL default '0',
  PRIMARY KEY  (`categories_id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of cat
-- ----------------------------
INSERT INTO `cat` VALUES ('1', '0');
INSERT INTO `cat` VALUES ('2', '1');
INSERT INTO `cat` VALUES ('3', '1');
INSERT INTO `cat` VALUES ('4', '2');
INSERT INTO `cat` VALUES ('5', '0');
INSERT INTO `cat` VALUES ('6', '4');
4

3 に答える 3

2
select * from cat where categories_id not in (select parent_id from cat)

それはあなたが求めているものですか?

同じことが達成できます

select * from cat child 
left join cat parent on child.categories_id = parent.parent_id
where parent.parent_id is null

デモ

于 2013-08-01T09:59:19.023 に答える
1

左自己結合を使用します。

select c1.categories_id
from cat c1
left join cat c2
on c2.parent_id = c1.categories_id
where c2.categories_id IS NULL
于 2013-08-01T10:01:01.037 に答える
0
select * from cat where categories_id = "0";

または、Akhil のクエリを実行できます。これがあなたが求めていたものなら

于 2013-08-01T10:02:41.397 に答える