我想知道怎么做。找不到多少帮助。
我有两张table。第一张table:
CREATE TABLE `first` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
第二张table:
CREATE TABLE `second` (
`id` int(11) NOT NULL,
`foo` varchar(3) NOT NULL ,
`bar` varchar(255) NOT NULL )
两个表中的id是相同的值,它们是这样关联的。我必须获取一些条目,例如父项id为“0”的条目,并检查这些条目是否有子项。如果他们有我也应该拿到他们的身份证。
它可以很容易地完成与小php和两个查询,但我想做得更好。我试过这样的方法:
SELECT `first`.*, `second`.*, children.*
FROM `first`
JOIN `second` ON `second`.id = `first`.id
INNER JOIN( SELECT
// Something
)AS children ON children.id = `second`.id
WHERE `first`.parent_id = '0'
GROUP BY `first`.id, `second`.la
但我没有成功。如何在同一查询中选择这些结果及其子级?谢谢!
先编辑:
-------------------------------------------------
| id | parent_id |
--------------------------------------------------
| 1 | 0 |
--------------------------------------------------
| 2 | 1 |
--------------------------------------------------
| 3 | 2 |
--------------------------------------------------
| 4 | 1 |
--------------------------------------------------
第二张table:
-------------------------------------------------
| id | foo | name
--------------------------------------------------
| 1 | asd | apple
--------------------------------------------------
| 2 | asd | banana
--------------------------------------------------
| 3 | gsf | orange
--------------------------------------------------
| 4 | gre | potato
--------------------------------------------------
期望的结果是得到id为1的行(合并了两个表)和父id为1的行的所有id。
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!