Php 连接mysql表并获取所有记录(如果为空)

Php 连接mysql表并获取所有记录(如果为空),php,mysql,Php,Mysql,我有三张桌子 venture - stores details about ventures venture_buys - details about the venture purchases users - details about the users 我使用下面的查询连接所有3个表,并在一个块中显示详细信息 SELECT `a`.`user_id`, `a`.`g_id`,`b`.`first_name`, `b`.`last_name`, `a`.`description`, `a

我有三张桌子

venture - stores details about ventures
venture_buys - details about the venture purchases
users - details about the users
我使用下面的查询连接所有3个表,并在一个块中显示详细信息

SELECT `a`.`user_id`, `a`.`g_id`,`b`.`first_name`, `b`.`last_name`,  `a`.`description`, `a`.`title`, `a`.`location`,b.title, sum(c.mt_qty) as m_qty
        FROM `users` `a`
        LEFT JOIN `venture` `b` ON `b`.`id`=`a`.`user_id`
        LEFT JOIN `venture_buys` `c` ON `c`.`g_id`=`a`.`g_id`
        ORDER BY `c`.`g_id` ASC
我所面临的问题是,只有当它被购买了或者它总是空的时候,venture_购买才有细节。我用那张表来计算购买的数量。当我尝试添加和显示ventures时,它不会显示记录,除非Ventureu有记录


即使venture\u buy中没有记录,是否有办法更改查询或编写条件以获取所有记录?

对结构进行大量假设,也许这就是您想要做的:

SELECT `a`.`user_id`, `a`.`g_id`,`b`.`first_name`, `b`.`last_name`,  `a`.`description`, `a`.`title`, `a`.`location`,`b`.`title`, `c`.`sum_qty` as m_qty
        FROM `users` `a`
        LEFT JOIN `venture` `b` ON `b`.`id`=`a`.`user_id`
        LEFT JOIN (SELECT `g_id`,sum(`mt_qty`) AS `sum_qty` FROM `venture_buys` GROUP BY `g_id`) AS `c` ON `c`.`g_id`=`a`.`g_id`
        ORDER BY `c`.`g_id` ASC

不知道我为什么用那些不合逻辑的allias名字…

你可以试试这个,伙计:

SELECT
    u.user_id, u.g_id,
    v.first_name, v.last_name,
    u.description, u.title, u.location,
    v.title, SUM(vb.mt_qty) AS m_qty
FROM
    venture v
    INNER JOIN users u ON u.id = v.id
    INNER JOIN venture_buys ON vb.g_id = u.g_id
GROUP BY
    vb.g_id
ORDER BY
    vb.g_id ASC; 

您将与用户一起加入verture_buys,并再次加入venture_buys。您的查询中没有风险投资表。我想第一个表应该是venture。@BartekKobyłecki对不起,第一个表是venture为什么你的别名这么不合逻辑?如果你能给我们mysql的小提琴链接,然后我们可以帮助you@LiveEn第一张桌子是什么意思?如果问题错误,请更新问题并至少给出表格结构。您还需要一个“分组依据…”,以便聚合函数“总和(c.mt_数量)”生效。