我已经阅读了很多关于这一点,似乎是不可能的。问题是,因为列的数量是动态的,我不能明确地提到他们。我把别名,但'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 * 不是正确的方法,因为我选择了所有的列。我要求其他方法。
因为我必须这样做几次,而且列是动态的,而且很多列都是动态的,所以通过显式地编写每个列名是不可维护的。
1条答案
按热度按时间6ju8rftf1#
首先你要做一个
SELECT *
,然后添加列。* 是所有的东西,所以你得到的是同一列的多个。你给了不同的名字的那3个ID在你的查询中再次被SELECT
处理。删除 * 并输入你需要的列,你就没事了。/Edit\如果你改变了你的表,不使用泛型方法,只在第一个地方标记一个列ID,你也会解决这个问题。例如,如果你有一个表名product,调用该表的ID列ProductID。这也会解决你的问题。