Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Column: 'idin' in field list is ambiguous - dublowanie nazw
Forum PHP.pl > Forum > Bazy danych
mroz
Witam

Tabela PRZYJECIE: idin PRIMATY KEY; idses, nrlistuin
Tabela NAPRAWA: idnapr RIMARY KEY; idin, idczesci

Prosze nie zwazac na kolejnosc przeszukiwania itp, na razie nie ma to znaczenia.

Wg tradycyjnej SQL-89
Kod
SELECT nrlistuin,idin,rodznapr FROM przyjecie NATURAL JOIN naprawa WHERE nrlistuin='List_RR_0'

i dostaje msg jak w tytule postu.
Wg SQL-92
Kod
SELECT nrlistu,idin,rodznapr FROM przyjecie,naprawa WHERE przyjecie.idin=naprawa.idin WHERE nrlistuin='List_RR_0'

Latwo zgadnac, iz Mysql opluwa mnie tym samym komunikatem.
Problem baza widzi w tych samych nazwach pol idin w 2 roznych tabelach.
Sadzilem,ze SQL-92 da sobie z tym rade,ale moze Mysql ma inne obejscie tematu?

Bede wdzieczny za pomoc.

Pozdr
uboottd
Kod
                            SELECT nrlistu, przyjecie.idin, rodznapr FROM przyjecie, naprawa WHERE przyjecie.idin=naprawa.idin AND nrlistuin='List_RR_0'


MySQL wymaga zawsze wskazania tabeli z ktorej pochodzi pole jesli nazwy sie pokrywaja, jedynym wyjatkiem jest SELECT * FROM ...
mroz
Thx, juz wlasnie sie polapalem i znalazlem nowa ciekawostke. Otoz aby wykorzystac JOIN-y z SQL-92 a nie zlaczenie kartezjanskie, Mysql wymaga dodatkowo komenty NATURAL, czyli NATURAL JOIN. Inne bazki same "zgaduja",iz chodzi o NATURAL. To taka dygresja.

Dzieki, pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.