-1

我已经完成了有关此的大量阅读,似乎这是不可能的。问题是,由于列的数量是动态的,我无法明确提及它们。我输入了别名,但“id”列不断出现。

CREATE不起作用,因为那里有 3id列,显然。

(这个查询实际上是好的,它有效,所以请不要评估它)

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

由于我必须这样做几次,并且列是动态的,而且很多列是无法通过显式编写每个列名来维护的。

4

1 回答 1

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 列。这也将解决您的问题。

于 2013-10-22T15:43:41.547 回答