mysql SELECT * 查询,不包括列

jjhzyzn0  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(180)

我已经阅读了很多关于这一点,似乎是不可能的。问题是,因为列的数量是动态的,我不能明确地提到他们。我把别名,但'id'列不断出现。
显然,CREATE不起作用,因为那里有3个id列。
(This查询实际上是好的,它的工作,所以不要评估它请)

CREATE TABLE merged as 
    SELECT *, 
           wuwebusers.id as wuwebusers_id, 
           jgwebusers_address.id as jgwebusers_address_id, 
           jgwebusers.id as jgwebusers_id 
    FROM wuwebusers 
    LEFT OUTER JOIN jgwebusers_address ON wuwebusers.id = jgwebusers_address.userid 
    LEFT OUTER JOIN jgwebusers ON wuwebusers.id = jgwebusers.userid 
    GROUP BY wuwebusers.id

编辑:问题:我怎样才能选择每一列,除了一些显式的列。我知道SELECT * 不是正确的方法,因为我选择了所有的列。我要求其他方法。
因为我必须这样做几次,而且列是动态的,而且很多列都是动态的,所以通过显式地编写每个列名是不可维护的。

6ju8rftf

6ju8rftf1#

首先你要做一个SELECT *,然后添加列。* 是所有的东西,所以你得到的是同一列的多个。你给了不同的名字的那3个ID在你的查询中再次被SELECT处理。删除 * 并输入你需要的列,你就没事了。

CREATE TABLE merged as 
SELECT 
    wuwebusers.id as wuwebusers_id, 
    jgwebusers_address.id as jgwebusers_address_id, 
    jgwebusers.id as jgwebusers_id , 
    AllotherColumnsYouNeed as WhateverYouWantToCallthem
FROM wuwebusers 
LEFT OUTER JOIN jgwebusers_address 
    ON wuwebusers.id = jgwebusers_address.userid 
LEFT OUTER JOIN jgwebusers 
    ON wuwebusers.id = jgwebusers.userid 
    GROUP BY wuwebusers.id

/Edit\如果你改变了你的表,不使用泛型方法,只在第一个地方标记一个列ID,你也会解决这个问题。例如,如果你有一个表名product,调用该表的ID列ProductID。这也会解决你的问题。

相关问题