Temat: Problem z pobraniem danych

Mam zapytanie, które powinno pobrać dane z 2 tabel:

SELECT *
FROM Tabela_A
left JOIN Tabela_B
ON Tabela_A.subscriber = Tabela_B.subscriber WHERE emailaddress='www@www.pl' and field='18' AND data='numer'
UNION ALL
SELECT 'field' AS 'imie', 'data' AS 'imie_ok'
FROM Tabela_A
left JOIN Tabela_B
ON Tabela_A.subscriber = Tabela_B.subscriber WHERE emailaddress='www@www.pl' and field='10'


Mam tutaj błąd.

Są to 2 tabele, których układ jest następujący:

Tabela_A
subscriber|emailaddress|confirmed|secretcode|confirmip |subscribedate
1 |www@http://pl| 1 | 12345 |123.123.1.1|123456789

Tabela_B
subscriber | field | data
1 | 10 | imie
1 | 15 | nazwisko
1 | 18 | numer
1 | 20 | auto

Chcę pobrać dane w jednym zapytaniu, gdzie wyciągnę imię, numer, email, sekretny kod wybranych osób według ich numeru(pole field=18).

Wspólne pole to subscriber.

Proszę o pomoc!

konto usunięte

Temat: Problem z pobraniem danych

może na początek wróc do manuala

http://dev.mysql.com/doc/refman/5.0/en/join.html

i

http://dev.mysql.com/doc/refman/5.0/en/join.html

i porównaj to ze swoją składnią

a jak już dojedziesz gdzie zrobiłeś błąd

to możesz poczytać tutaj
http://dev.mysql.com/doc/refman/5.0/en/subqueries.html

konto usunięte

Temat: Problem z pobraniem danych

Naturalnie, jest kilka sposobów.

Zakładając że subscriber i field tworzą unikalny klucz w tabela_b i określone wartości w kolumnie tabela_b.field zawsze oznaczają te same pola, poniżej jeden z przykładów (części wykomentowane to opcjonalne pomysły):
select max(if(prawo.field = 10, prawo.data, null)) as imie,
-- max(if(prawo.field = 15, prawo.data, null)) as nazwisko,
'numer' as numer,
lewo.emailaddress,
lewo.secretcode
from tabela_b warunek
inner join tabela_a lewo on warunek.subscriber = lewo.subscriber
and warunek.`data` = 'numer'
and warunek.`field` = 18
inner join tabela_b prawo on prawo.subscriber = warunek.subscriber
-- and prawo.`field` in (10, 15)
group by numer, emailaddress, secretcode
order by null

Następna dyskusja:

Problem z pobraniem bazy da...




Wyślij zaproszenie do