私は複数のテーブルを持っていますamazonlistings
ebaylistings
shopifylistings
同じカラムのSKU
です。MySQLテーブルエイリアス名ユニオンで生成される最初のエイリアス
これらすべてのテーブルのSKU
列を検索するクエリを作成しようとしています。今はUNIONでこれをやっています。
$channeldetectquery = "(SELECT SKU as amazon FROM amazonlistings WHERE SKU = '$channelskuarray[$i]')
UNION
(SELECT SKU as ebay FROM ebaylistings WHERE SKU = '$channelskuarray[$i]')
UNION
(SELECT SKU as shopify FROM shopifylistings WHERE SKU = '$channelskuarray[$i]');"
私はこれらの個別...
SELECT SKU as ebay FROM ebaylistings WHERE SKU = 'Product SKU'
を行うと意図したとおり、それがeBayからのSKUを提供して...しかし、UNION
で上記のクエリを使用しようとしているいくつかの理由でのみ提供しています最初のエイリアス(amazon
)は結果に関係なく発生します。
私の意図した結果(今、私は、これは理想的であるかないかどうかわからないんだけど、これは私が達成しようとしたものである)、
[amazon] [ebay] [shopify]
SKU 1 SKU 1
[amazon] [ebay] [shopify]
SKU 2
などのようになります...空の結果SKUが見つからない場合はセット(または結果セットなし)、SKUが見つかった場合は結果です。これにより、適切な表にSKUがあるかどうかを確認して確認することができます。
SQL結果が2次元のみであるため、これは予想される動作です。結果セットをどのように見たいのですか?希望のサンプルを投稿してください。一般的な解決法は、 'source SKU 'のような文字列リテラルを追加することです。' source'出力列には可変ソーステーブルの値が含まれていて、amazon 'AS source FROM amazonlistings'です。 –
また、 '$ channelskuarray [$ i]'と書いてありますので、これをループで繰り返しますか? –
私は参照してください。ちょっとしたお買い物に感謝します。私は私の質問を更新しました。 @Oleksandr Savchenkoは正しいです.. – bbruman