2012-10-18 8 views
11

Mam dużą tabelę Użytkownik i małą tabelę User_purchase w bigówce Google.Łączenie z lewej strony kończy się niepowodzeniem, jeśli nie jest jawnie używane ISNULL

Jeśli łączę te dwa z

SELECT User.id, User_purchase.amount FROM User 
    LEFT JOIN User_purchase on User.id = User_purchase.user_id, 

kwerenda zwraca błąd:

Query Failed. Error: Not Implemented: This table cannot be read

Ale jeśli łączę dwa działa z

SELECT User.id, ISNULL(INTEGER(User_purchase.amount), INTEGER(0)) FROM User 
    LEFT JOIN User_purchase on User.id = User_purchase.user_id, 

zapytanie.

Nie do końca rozumiem, dlaczego pierwszy przypadek nie działa. Zakładam, że w pierwszym przypadku mogę uzyskać wszystkich użytkowników z ich wartością zakupu, chociaż niektórzy użytkownicy będą mieli NULL jako wartość jego purchase_amount. Dzięki.

+0

Czy możesz dodać więcej informacji? Jak na przykład serwer sql (domyślam się, że używasz MS Sql Server, ale nie jestem w 100% pewny). Zakładam też, że User.id i User_purchase.user_id są zarówno ints, czy możesz potwierdzić? –

+0

To jest Google BigQuery. Tak, liczby całkowite. – greeness

+0

Dzięki Jordan, czekamy na Twój wynik badania. – greeness

Odpowiedz

4

Jest to błąd związany z zagnieżdżonymi nazwami pól w odpowiedziach na kwerendy. Mam poprawkę na błąd, ale nie wyjdzie na to do przyszłego tygodnia. Dziękujemy za zwrócenie na to naszej uwagi.

+0

Dzięki za natychmiastową reakcję! Czy możesz zaktualizować po wydaniu poprawki? dzięki. – greeness

+0

Powinien być już dostępny. Daj nam znać, jeśli nadal będziesz mieć problemy. –

+0

Problem rozwiązany. Dzięki! – greeness