bartolini
26.11.2009, 23:00:09
[php][php]Mam mały problem mianowice.
Mam dwie tabele
1. LOKALE
id_lokale
2.AUKCJE
id_lokalea
Potrzebuje zapytania w mysql które wyświetli z tabeli LOKALE id_lokale oprócz tych które sa w Id_lokalea w tabeli AUKCJE
Jeśli może ktoś pomóc to bede wdzięczny
maly_swd
26.11.2009, 23:53:56
SELECT * FROM lokale l WHERE l.id_lokale NOT IN (SELECT a.id_lokalea FROM AUKCJE a)
bartolini
27.11.2009, 00:54:14
próbowalem w ten sposób i w miejscu (SELECT a.id_lokalea FROM AUKCJE a) niby jest blad dodlem pojedynczy cudzyslow ('SELECT a.id_lokalea FROM AUKCJE a') i bledu nie wyrzuca ale wyswietla wszystkie id_lokale z tabeli Lokale tak jakby nie bral pod uwage tego select-a
maly_swd
27.11.2009, 10:28:08
jaki blad wyswietla?
SELECT * FROM lokale l WHERE l.id_lokale NOT IN (SELECT a.id_lokalea FROM AUKCJE a)
bartolini
27.11.2009, 11:08:29
MySQL zwrócił komunikat
#1064 - Something is wrong in your syntax obok 'SELECT a.id_lokalea FROM AUKCJE a) LIMIT 0, 30' w linii 1
bartolini
27.11.2009, 14:27:35
-- Struktura tabeli dla `aukcje`
--
CREATE TABLE `aukcje` (
`id_aukcje` int(11) NOT NULL auto_increment,
`id_lokalua` int(11) NOT NULL default '0',
`cena` float NOT NULL default '0',
`opis` text NOT NULL,
`foto_link` text NOT NULL,
`foto_link2` text NOT NULL,
`foto_link3` text NOT NULL,
`foto_link4` text NOT NULL,
`foto_link5` text NOT NULL,
PRIMARY KEY (`id_aukcje`)
) TYPE=MyISAM AUTO_INCREMENT=112 ;
-- Struktura tabeli dla `lokale`
--
CREATE TABLE `lokale` (
`id_lokalu` int(11) NOT NULL auto_increment,
`typ` varchar(15) NOT NULL default '',
`ulica` varchar(50) NOT NULL default '',
`nr` varchar(10) NOT NULL default '',
`kod` varchar(6) NOT NULL default '',
`miasto` varchar(30) NOT NULL default '',
`liczba_pokoi` int(2) NOT NULL default '0',
`kuchnia` int(11) NOT NULL default '0',
`lazienka` int(11) NOT NULL default '0',
`piwnica` int(11) NOT NULL default '0',
`garaz` int(11) NOT NULL default '0',
`pow_calk` float NOT NULL default '0',
`liczba_osob_zam` int(2) NOT NULL default '0',
`imie_wlasciciela` varchar(30) NOT NULL default '',
`nazwisko_wlasciciela` varchar(40) NOT NULL default '',
`nr_tel` varchar(9) NOT NULL default '',
`stan_zadluz` float NOT NULL default '0',
PRIMARY KEY (`id_lokalu`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
wczesniej zrpbilem literówke w id_lokalu i id_lokalua ale w zapytaniu poprawilem i jest to samo
thek
27.11.2009, 16:03:22
Logika zapytania...
Wybierz wszystkie lokale, których id nie znajduje się w aukcjach a lokale te są unikatowe...
SELECT * FROM lokale WHERE id_lokalu NOT IN (SELECT DISTINCT id_lokalua FROM aukcje)
maly_swd
28.11.2009, 12:33:53
Zanim zaczniesz zakladac temat, sprawdz czy dane jakie podajesz sa poprawne:
powiedz mi gdzie w twojej tabeli wystepuje "
2.AUKCJE
id_lokalea <- gdzie to masz?