-1

私はこれについて多くのことを読みましたが、それは不可能のようです。問題は、列の量が動的であるため、明示的に言及することはできません。エイリアスを入力しましたが、「id」列が表示され続けます。

そこには明らかにCREATE3つ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 * が正しい方法ではないことはわかっています。私は他の方法を求めています。

私はこれを数回行う必要があり、列は動的でかなりの数であるため、すべての列名を明示的に記述しても維持できません。

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にラベルを付けるだけの一般的な方法を使用しないようにテーブルを変更した場合、この問題も解決します。たとえば、テーブル名 product がある場合、そのテーブル ProductID の ID 列を呼び出します。これで問題も解決します。

于 2013-10-22T15:43:41.547 に答える