zum besser durchblick hier mal der inhalt der tabellen.
[code]
mysql> select * from autor_tab;
+----+-------------+
| id | name |
+----+-------------+
| 1 | Mark Twain |
| 2 | Steven King |
| 3 | Hera Lind |
+----+-------------+
3 rows in set (0.00 sec)
mysql> select * from buecher_tab;
+----+--------+----------+-----------+-----------+----------+
| id | titel | genre_id | anmerkung | verlag_id | autor_id |
+----+--------+----------+-----------+-----------+----------+
| 1 | Buch_1 | 1 | NULL | 1 | 1 |
| 2 | Buch_2 | 3 | NULL | 2 | 3 |
| 3 | Buch_3 | 2 | NULL | 3 | 2 |
| 4 | Buch_4 | 1 | NULL | 2 | 1 |
| 5 | Buch_5 | 1 | NULL | 1 | 1 |
| 6 | Buch_6 | 2 | NULL | 2 | 3 |
+----+--------+----------+-----------+-----------+----------+
6 rows in set (0.00 sec)
mysql> select * from genre_tab;
+----+-------+
| id | genre |
+----+-------+
| 1 | Roman |
| 2 | Liebe |
| 3 | SciFi |
+----+-------+
3 rows in set (0.01 sec)
mysql> select * from verlag_tab;
+----+---------+
| id | verlag |
+----+---------+
| 1 | Galileo |
| 2 | M&T |
| 3 | Bastai |
+----+---------+
3 rows in set (0.00 sec)
[code]
nun zu deinen verknüpfungen.
Code:
von wem habe ich bücher und wieviele?
mysql> select count(name) anzahl,autor_tab.name from autor_tab inner join bueche
r_tab on buecher_tab.autor_id = autor_tab.id group by autor_tab.name order by anzahl;
+--------+-------------+
| anzahl | name |
+--------+-------------+
| 1 | Steven King |
| 2 | Hera Lind |
| 3 | Mark Twain |
+--------+-------------+
3 rows in set (0.00 sec)
zu deinem 2. problem.
das musst du den inhalt von name erst splitten.
am besten split() oder explode() nehmen als trennzeichen hast du ja ", ".
so dann kannst du bequem mit dem ergebnis suchen.
du suchst bücher von "mark twain":
Code:
mysql> select buecher_tab.titel,buecher_tab.id from buecher_tab inner join autor
_tab on buecher_tab.autor_id = autor_tab.id where autor_tab.vorname = 'Mark' &&
autor_tab.nachname = 'Twain';
+--------+----+
| titel | id |
+--------+----+
| Buch_1 | 1 |
| Buch_4 | 4 |
| Buch_5 | 5 |
+--------+----+
3 rows in set (0.00 sec)
ich hoffe es hilft dir.