Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.779 pregleda

Najnovija ↓

Potrebna pomoc oko MySQL upita 03.08.2007. u 11:02 · pre 234 meseca #1
Stvari stoje ovako:
Ucim rad sa bazama podataka u MySQL-u iz knjige:
"PHP and MySQL Web Development, 2Ed"
Za rad koristim WAMP5 1.7.0.
U knjizi se prati primer baze podataka koja se moze kreirati sledecim upitom:


-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Aug 03, 2007 at 07:49 AM
-- Server version: 5.0.27
-- PHP Version: 4.4.6
--
-- Database: `books`
--

DROP TABLE IF EXISTS `book_reviews`;
CREATE TABLE `book_reviews` (
`isbn` char(13) NOT NULL,
`review` text,
PRIMARY KEY (`isbn`)
) TYPE=InnoDB;

INSERT INTO `book_reviews` (`isbn`, `review`) VALUES
('0-672-31697-8', 'Morgan''s book is clearly written and goes well beyond\r\nmost of the basic Java books out there.');

DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
`isbn` char(13) NOT NULL,
`author` char(30) default NULL,
`title` char(60) default NULL,
`price` float(4,2) default NULL,
PRIMARY KEY (`isbn`)
) TYPE=InnoDB;

INSERT INTO `books` (`isbn`, `author`, `title`, `price`) VALUES
('0-672-31509-2', 'Pruitt, et al.', 'Teach Yourself GIMP in 24 Hours', 24.99),
('0-672-31697-8', 'Michael Morgan', 'Java 2 for Professional Developers', 34.99),
('0-672-31745-1', 'Thomas Down', 'Installing Debian GNU/Linux', 24.99),
('0-672-31769-9', 'Thomas Schenk', 'Caldera OpenLinux System Administration Unleashed', 49.99);

DROP TABLE IF EXISTS `customers`;
CREATE TABLE `customers` (
`customerid` int(10) unsigned NOT NULL auto_increment,
`name` char(30) NOT NULL,
`address` char(40) NOT NULL,
`city` char(20) NOT NULL,
PRIMARY KEY (`customerid`)
) TYPE=InnoDB AUTO_INCREMENT=4 ;

INSERT INTO `customers` (`customerid`, `name`, `address`, `city`) VALUES
(1, 'Julie Smith', '25 Oak Street', 'Airport West'),
(2, 'Alan Wong', '1/47 Haines Avenue', 'Box Hill'),
(3, 'Michelle Arthur', '357 North Road', 'Yarraville');

DROP TABLE IF EXISTS `order_items`;
CREATE TABLE `order_items` (
`orderid` int(10) unsigned NOT NULL,
`isbn` char(13) NOT NULL,
`quantity` tinyint(3) unsigned default NULL,
PRIMARY KEY (`orderid`,`isbn`)
) TYPE=InnoDB;

INSERT INTO `order_items` (`orderid`, `isbn`, `quantity`) VALUES
(1, '0-672-31697-8', 2),
(2, '0-672-31769-9', 1),
(3, '0-672-31509-2', 1),
(3, '0-672-31769-9', 1),
(4, '0-672-31745-1', 3);

DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`orderid` int(10) unsigned NOT NULL auto_increment,
`customerid` int(10) unsigned NOT NULL,
`amount` float(6,2) default NULL,
`date` date NOT NULL,
PRIMARY KEY (`orderid`)
) TYPE=InnoDB AUTO_INCREMENT=5 ;

INSERT INTO `orders` (`orderid`, `customerid`, `amount`, `date`) VALUES
(1, 3, 69.98, '2000-04-02'),
(2, 1, 49.99, '2000-04-15'),
(3, 2, 74.98, '2000-04-19'),
(4, 3, 24.99, '2000-05-01');



U knjizi stoji kao primer upit:

select customers.customerid, customers.name
from customers left join orders
using (customerid)
where orders.orderid is null;




Rezultat bi po knjizi trebao biti:
Code:

+------------+----------------+
| customerid | name           |
+------------+----------------+
|          4 | Melissa Jones  |
|          5 | Michael Archer |
+------------+----------------+



ali MySQL daje rezultat:

"MySQL returned an empty result set (i.e. zero rows)."



Da li je greska u knjizi ili je nesto lose kod moje verzije MySQL-a?
Sta je ispravno?
Re: Potrebna pomoc oko MySQL upita 03.08.2007. u 12:01 · pre 234 meseca #2
Uradi:
Code:

SELECT customers.customerid, customers.name
  FROM customers;

Ovaj upit daje sve kupce koji su evidentirani u sistemu, pa sam dodji do zakljucka.
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Potrebna pomoc oko MySQL upita 05.08.2007. u 11:25 · pre 234 meseca #3
Hvala chachka,
ali te osnovne upite sam presao, i to mi je jasno,
ali kod navedenog upita:

select customers.customerid, customers.name
from customers left join orders
using (customerid)
where orders.orderid is null;

nije mi jasno da li je los upit ili je nesto drugo u pitanju,
jer se ne dobija ocekivani rezultat???

Molim nekog da mi razjasni. Hvala.
Re: Potrebna pomoc oko MySQL upita 05.08.2007. u 13:06 · pre 234 meseca
izmenjeno 1 put, poslednji put chachka 05.08.2007. u 13:17
  1. chachka05.08.2007. u 13:17zapis iz teksta poruke
#4
Razmisli malo sam.

Upit kojeg sam ti dao vraća SVE kupce koji se nalaze u sistemu, a njih ima TROJE! To su kupci:
Code:

customerid   name
==========   ===============
         1   Julie Smith
         2   Alan Wong
         3   Michelle Arthur

Kako onda očekuješ da ti neki upit izlista kupce Melissa Jones i Michael Archer koji se uopšte ni ne nalaze u tabeli kupaca?!

Žigić više ne igra za Crvenu Zvezdu. Da li očekuješ da on da gol na sledećem derbiju Crvena Zvezda : Partizan?

Ja ne mogu da ti kažem da li je greška u knjizi, dok ne pročitam ceo taj deo koji te muči. Možda autor knjige nije dao sve testne podatke? Možda ti nisi uneo sve testne podatke?
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Potrebna pomoc oko MySQL upita 05.08.2007. u 13:25 · pre 234 meseca #5
Mogu samo da kazem HVALA chachka sto si mi otvorio oci!
Dok sam trazio problem u upitu, resenje je bilo na drugoj strani :-)
Potrebna pomoc oko MySQL upita 20.10.2007. u 00:41 · pre 231 mesec #6
Imam problema oko upita za bazu koja se (u MySQL-u) kreira sledecim kodom:



-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 19, 2007 at 07:17 AM
-- Server version: 5.0.27
-- PHP Version: 4.4.6
--
-- Database: `septembar2007`
--

-- --------------------------------------------------------

--
-- Table structure for table `radnik`
--

DROP TABLE IF EXISTS `radnik`;
CREATE TABLE `radnik` (
`ime` varchar(20) NOT NULL,
`prezime` varchar(20) NOT NULL,
`mbr` varchar(20) NOT NULL,
PRIMARY KEY (`mbr`)
) TYPE=InnoDB;

--
-- Dumping data for table `radnik`
--

INSERT INTO `radnik` (`ime`, `prezime`, `mbr`) VALUES
('Perica', 'Stojanovic', '124'),
('Janko', 'Petrovic', '132'),
('Slavica', 'Milicevic', '134'),
('Milena', 'Todorovic', '152'),
('Sreten', 'Jovic', '201'),
('Marko', 'Petrovic', '202');

-- --------------------------------------------------------

--
-- Table structure for table `rukovodi`
--

DROP TABLE IF EXISTS `rukovodi`;
CREATE TABLE `rukovodi` (
`mbrsef` varchar(20) NOT NULL,
`mbrradnik` varchar(20) NOT NULL,
PRIMARY KEY (`mbrsef`,`mbrradnik`)
) TYPE=InnoDB;

--
-- Dumping data for table `rukovodi`
--

INSERT INTO `rukovodi` (`mbrsef`, `mbrradnik`) VALUES
('123', '134'),
('123', '152'),
('124', '201'),
('202', '123'),
('202', '124');





E, sad trebam da sastavim upite:
1) koji vraca spisak koji sadrzi ime i prezime radnika kao i ime i prezime njegovog sefa (rukovodioca)
2) koji kreira spisak svih radnika (ime i prezime) koji se nalaze na poziciji rukovodioca, kao i broj radnika kojima su neposredno nadredjeni.


Ako bi mi neko pomogao, dobro bi mi doslo, jer ne znam kako da povezem "u krug" da to prokazem.
HVALA.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme