我想了解如何做到这一点。找不到多少帮助。
我有两张桌子。 第一张表:
CREATE TABLE `first` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
第二张表:
CREATE TABLE `second` (
`id` int(11) NOT NULL,
`foo` varchar(3) NOT NULL ,
`bar` varchar(255) NOT NULL )
两个表中的Id值相同,它们都是相同的。 我必须获取一些条目,例如使用parent_id =' 0'并检查这些条目是否有孩子。如果他们有,我也应该得到他们的ids。
可以用很少的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
但我没有成功。 我怎样才能在同一个查询中选择那些结果和他们的孩子?谢谢!
EDIT 第一:
-------------------------------------------------
| id | parent_id |
--------------------------------------------------
| 1 | 0 |
--------------------------------------------------
| 2 | 1 |
--------------------------------------------------
| 3 | 2 |
--------------------------------------------------
| 4 | 1 |
--------------------------------------------------
第二张表:
-------------------------------------------------
| id | foo | name
--------------------------------------------------
| 1 | asd | apple
--------------------------------------------------
| 2 | asd | banana
--------------------------------------------------
| 3 | gsf | orange
--------------------------------------------------
| 4 | gre | potato
--------------------------------------------------
期望的结果是获取id为1的行(加入两个表)和所有行的id为parent_id 1的行。
谢谢!