2016-08-01 17 views
2

Ich habe MySQL durch ein Buch mit dem Namen 'PHP und MySQL Web Development' studiert und ich bin in einem Kapitel, das lehrt, wie man Daten aus mehreren Tabellen abfragt, ich versuchte es zu tun meine eigenen und kam mit dem folgenden BefehlAbfragen mehrerer Tabellen auf MySQL

mysql> select customers.name from books, customers, orders, orders_items 
    -> where books.title = 'Java 2' 
    -> and books.isbn = orders_items.isbn 
    -> and orders_items.orderid = orders.orderid 
    -> and orders.customersid = customers.customerid; 

und es gibt mir die folgenden Fehler

ERROR 1146 (42S02): Table 'books.orders_items' doesn't exist 

, aber wenn ich versuche, den Befehl genau zu verwenden, wie es in dem Buch ist es ganz gut funktioniert

mysql>select customers.name from customers, orders, order_items, books 
    ->where customers.customerid = orders.customerid 
    ->and orders.orderid = order_items.orderid 
    ->and order_items.isbn = books.isbn 
    ->and books.title = 'Java 2'; 

+-------------+ 
| name  | 
+-------------+ 
| Julie Smith | 
+-------------+ 

Was fehlt mir hier neben der Reihenfolge der Kriterien? Ich habe nicht getippt books.orders_items überall.

+0

können Sie beschreiben/zeigen die Tabellenschemata beteiligt? – RamRaider

Antwort

2

Sie den Plural verwenden orders_items nicht den Singular aus dem Buch order_items

beide hier

wählen customers.name von Bücher, Kunden, Aufträge, orders_items

und in Zeile

und books.isbn = orders_items .isbn

+0

Junge, fühle ich mich nicht gerade dumm? lol Ich dachte, dass der Fehler eine Spalte innerhalb einer Tabelle ist, aber es ist eine Tabelle in einer Datenbank –

Verwandte Themen