Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在“全选(*)视图中为SQL创建子查询?_Mysql_Sql_Select_Subquery_Views - Fatal编程技术网

Mysql 如何在“全选(*)视图中为SQL创建子查询?

Mysql 如何在“全选(*)视图中为SQL创建子查询?,mysql,sql,select,subquery,views,Mysql,Sql,Select,Subquery,Views,我想创建一个包含多个表的视图,但我需要的是从一个表中选择*并从其余的表中选择几个。这就是我到目前为止所拥有的: CREATE VIEW `database`.`pages_view` AS SELECT `p`.`p_name` AS `p_name`, `p`.`slug` AS `slug`, `i`.`image` AS `image`, `t`.`title` AS `title`, `t`.`text` AS `text`, `s`.`s

我想创建一个包含多个表的视图,但我需要的是从一个表中选择*并从其余的表中选择几个。这就是我到目前为止所拥有的:

CREATE VIEW `database`.`pages_view` AS
SELECT
    `p`.`p_name` AS `p_name`,
    `p`.`slug` AS `slug`,
    `i`.`image` AS `image`,
    `t`.`title` AS `title`,
    `t`.`text` AS `text`,
    `s`.`sec_name` AS `sec_name`
FROM
    (((`database`.`pages` `p`
    LEFT JOIN `database`.`page_image` `i` ON ((`p`.`id` = `i`.`pages_id`)))
    LEFT JOIN `database`.`page_text` `t` ON ((`p`.`id` = `t`.`pages_id`)))
    LEFT JOIN `database`.`sections` `s` ON ((`p`.`id` = `t`.`pages_id`)))
WHERE
    (`p`.`visible` = 1)
我想要的是从部分中选择*,而不是逐个调用。

只需使用s*:

注:

除非表或列的名称不正确,否则不需要转义字符。 对于表别名尤其如此。 您不需要将列重命名为相同的名称p.p_name,因为p_name是多余的-不值得额外键入。
另外,在视图中使用*时要小心。这是您问题的答案,但列的名称、类型和顺序取决于基础表。

为什么要使用这么多圆括号?@lad2025只是一个副词,Jejei已经用了*并没有给我结果,thaks for the Advisers这似乎是我的正确答案。你确定你有符合你给出的标准的数据吗?你期望的结果是什么?你得到了什么?这是我的错误,输入错误对不起,你的答案是正确的,非常感谢
CREATE VIEW database.pages_view AS
    SELECT p.p_name, p.slug, i.image, t.title, t.text,
           s.*
    FROM database.pages p LEFT JOIN 
         database.page_image i
         ON p.id = i.ages_id LEFT JOIN 
         database.page_text t
         ON p.id = t.pages_id LEFT JOIN
         database.sections s
         ON p.id = t.pages_id
    WHERE p.visible = 1;