SELECT *查询,不包括列

时间:2013-10-22 15:31:59

标签: mysql select columnname

我已经完成了对此的阅读,似乎这是不可能的。 事实是,由于列的数量是动态的,我无法明确提及它们。我放了别名,但'id'栏不断出现。

CREATE无法正常工作,因为那里有3 id列,这是非常的。

(这个查询实际上没问题,但它的工作方式请不要评估它)

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 *不是正确的方法,因为我选择了所有。我正在寻求其他方式。

由于我必须执行此操作几次并且列是动态的,并且通过显式写入每个列名称而无法维护这些列。

1 个答案:

答案 0 :(得分:1)

首先,您正在进行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

/ 编辑 \如果您将表更改为不使用仅首先使用列ID的通用方法,您也可以解决此问题。例如,如果您有一个表名产品,请调用该表ProductID的ID列。这也将解决您的问题。