Mysql - 选择,存储在var中,在同一查询中选择

时间:2018-06-08 21:47:56

标签: mysql sql

我想了解如何做到这一点。找不到多少帮助。

我有两张桌子。 第一张表:

  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的行。

谢谢!

0 个答案:

没有答案