Ich habe mehrere Tabellen amazonlistings
ebaylistings
shopifylistings
mit der gleichen Spalte SKU
.MySQL Tabelle Alias Name nur resultierende erste Alias in Union
Ich versuche, eine Abfrage zu erstellen, die die Spalte SKU
in all diesen Tabellen durchsucht. Im Moment mache ich das mit 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]');"
Wenn ich diese einzeln ...
SELECT SKU as ebay FROM ebaylistings WHERE SKU = 'Product SKU'
den SKUS von ebay bietet als gedacht ... aber aus irgendeinem Grund, wenn die obige Abfrage mit UNION
zu verwenden versuchen, es wird nur die Bereitstellung der erste Alias (amazon
) unabhängig vom Ergebnis.
Mein beabsichtigtes Ergebnis (jetzt, ich bin nicht sicher, ob dies ideal ist oder nicht, aber das ist, was ich erreichen wollte), wäre wie
[amazon] [ebay] [shopify]
SKU 1 SKU 1
[amazon] [ebay] [shopify]
SKU 2
etc ... ein leeres Ergebnis gesetzt (oder keine Ergebnismenge), wenn die Artikelnummer nicht gefunden wird, und ein Ergebnis, wenn die Artikelnummer gefunden wird. So kann ich überprüfen, ob die Artikelnummer in der entsprechenden Tabelle gefunden wurde.
Dies ist das erwartete Verhalten, da ein SQL-Ergebnis nur 2-dimensional ist. Wie soll Ihr Ergebnis aussehen? Bitte post ein gewünschtes Ergebnis. Eine übliche Lösung besteht darin, ein String-Literal wie 'SELECT SKU, 'amazon' AS source FROM amazonlistings 'hinzuzufügen, wobei die' source'-Ausgabespalte den Variablenquellentabellenwert enthält. –
Sie haben auch '$ danskuarray [$ i]' geschrieben, also wiederholen Sie dies in der Schleife? –
Ich verstehe. Danke für den Leckerbissen. Ich habe meine Frage aktualisiert. @Oleksandr Savchenko das ist richtig .. – bbruman