Dzien dobry wszystkim. Potrzebuje pomocy w wyszukaniu bledu mojego zapytania. Na czym problem polega:
Majac dwie tabele:
a)
CREATE TABLE `uczniowie` (
`user_id` tinyint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_name` varchar(13) NOT NULL,
`user_password` varchar(40) NOT NULL,
PRIMARY KEY (`user_id`)
)
(IMG:
style_emoticons/default/cool.gif)
CREATE TABLE `nauczyciele` (
`user_id` tinyint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_name` varchar(13) NOT NULL,
`user_password` varchar(40) NOT NULL,
`user_stanowisko` varchar(13) NOT NULL,
`user_staz` int(13) NOT NULL,
`user_pensja` float(13) NOT NULL,
`user_stawka` float(13) NOT NULL,
`user_wiek` int(13) NOT NULL,
PRIMARY KEY (`user_id`)
)
... chcialbym wykonac zapytanie przy logowaniu na stronie php, ktore sprawdzi do jakiej tabeli przynalezy dany uzytkownik. Oczywiscie uzytkownik X nie moze nalezec do jednej i drugiej tabeli.
INSERT INTO `uczniowie` (`user_id`, `user_name`, `user_password`) VALUES ('1','testtest','12345678');
INSERT INTO `nauczyciele` (`user_id`, `user_name`, `user_password`,`user_stanowisko`,`user_staz`,`user_pensja`,`user_stawka`,`user_wiek`) VALUES ('1','testtest','12345678','Matematyk','3','1200','50','40');
Moje zapytanie:
SELECT user_name FROM uczniowie WHERE user_name = 'testtest' AND user_password= '12345678' UNION SELECT user_name FROM nauczyciele WHERE user_name = 'xxxx' AND user_password= 'xxxxxx'
;
Powyzsze zapytanie dziala poprawnie. Ale potrzebuje to zliczyc przy pomocy funkcji count(*), wiec:
SELECT count(*) FROM (
SELECT user_name FROM uczniowie WHERE user_name = 'testtest' AND user_password= '12345678' UNION SELECT user_name FROM nauczyciele WHERE user_name = 'xxxx' AND user_password= 'xxxxxx'
);
Nie dziala juz. Czy macie jakies propozycje jak zastosowac counta aby zapytanie dzialalo poprawnie?
Ten post edytował agentmullder 15.03.2010, 13:16:02