Differences

This shows you the differences between two versions of the page.

Link to this comparison view

join1_databaser [2018-10-05 14:33]
Joakim Forsgren
join1_databaser [2022-07-18 13:20]
Line 1: Line 1:
-====== Databaser + enkla JOIN ====== 
-<code sql> 
-# Eventuellt måste man köra detta kommando för att få GROUP BY att fungera. 
-# Får ni felet ...incompatible with sql_mode=only_full_group_by... kör kommandot nedan 
-SET sql_mode=(SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '')); 
-</code> 
-Gå igenom ''inner join'', ''left/right join'', ''group by'', ''count'', ''sub select'' och ''having'' 
-<code type=mysql> 
-# ex från genomgång 
-select join_users.*, join_items.date, count(join_items.user_id) as antal  
-from join_users  
-left join join_items  
-on join_users.user_id=join_items.user_id  
-where join_users.user_id > 25  
-group by join_users.user_id  
-having antal=0  
-order by antal desc; 
-</code> 
  
-Jobba i terminal och skriv dina svar i en fil du kallar **mysql3.txt**. Lägg filen i mappen mysql och skicka in den till bitbucket när du är klar. 
- 
-Det finns två tabeller i databasen jf_select som ser ut som nedan 
-<code> 
-mysql> desc join_users; 
-+--------------+--------------+------+-----+---------+----------------+ 
-| Field        | Type         | Null | Key | Default | Extra          | 
-+--------------+--------------+------+-----+---------+----------------+ 
-| user_id      | int(11)      | NO   | PRI | NULL    | auto_increment | 
-| login        | varchar(255) | NO       | NULL    |                | 
-| name         | varchar(255) | NO       | NULL    |                | 
-+--------------+--------------+------+-----+---------+----------------+ 
-3 rows in set (0.00 sec) 
- 
-mysql> desc join_items; 
-+--------------+----------+------+-----+---------+----------------+ 
-| Field        | Type     | Null | Key | Default | Extra          | 
-+--------------+----------+------+-----+---------+----------------+ 
-| item_id      | int(11)  | NO   | PRI | NULL    | auto_increment | 
-| user_id      | int(11)  | NO   | MUL | NULL    |                | 
-| item         | text     | NO       | NULL    |                | 
-| date         | datetime | NO       | NULL    |                | 
-+--------------+----------+------+-----+---------+----------------+ 
-4 rows in set (0.00 sec) 
-</code> 
- 
-== Din uppgift är att skriva några SQL-frågor på dessa två tabeller == 
- 
-1. 
-Visa alla inlägg som användaren med user_id 17 har gjort? 
- 
-2. 
-Visa alla inlägg som användaren med login eb0027 har gjort? 
- 
-3. 
-Hur många inlägg har användaren med user_id 17? 
- 
-4. 
-Hur många inlägg har användaren med login eb0027? 
- 
-5. 
-Skriv en fråga som ger följande svarstabell: 
-<code> 
-+--------+-------------------------+-------+ 
-| login  | Name                    | items | 
-+--------+-------------------------+-------+ 
-| ka2211 | Khaled Al Moulla        |     0 | 
-| sh2998 | Simon Hägglund          |     0 | 
-| gn8265 | Gabriel Backman Norgren |     0 | 
-| jl0021 | Johan Lindström             0 | 
-| aa0024 | Adam Åström                 0 | 
-| js0016 | Jonathan Söderlind      |     0 | 
-| dj0006 | Dennis Johansson        |     0 | 
-| av0018 | Albin von Ahn               0 | 
-| ro0002 | Robin Olsson            |     1 | 
-| lp0001 | Liza Pettersson             1 | 
-| an0050 | Anton Nilsson (te14)    |     1 | 
-| oa1675 | Oskar Andersson             2 | 
-| jw2123 | Joakim Wiklund          |     2 | 
-| ab0030 | Adrian Byström          |     2 | 
-| lv2726 | Leo Vedberg                 3 | 
-| ae0042 | Alexander Eriksson      |     3 | 
-| pn9149 | Pelle Nordström             3 | 
-| vs0014 | Viktor Södersten        |     3 | 
-| mp0008 | Markus Pettersson           3 | 
-| ee2753 | Erik Elfving            |     3 | 
-| mj0012 | Markus Johansson        |     4 | 
-| ms0005 | Martin Sjölund          |     4 | 
-| hs0019 | Henrik Svensson             5 | 
-| jl5733 | Jesper Lindberg             5 | 
-| ab0043 | Alexander Bäckman           5 | 
-| as0042 | Andreas Svensson        |     6 | 
-| js0015 | Jon Sellgren            |     7 | 
-| ss0032 | Samuel Sjöström             7 | 
-| jv0016 | Johan Vikström          |     7 | 
-| jd0007 | Jacob Danielsson        |     8 | 
-| an0054 | Alexander Näslund           8 | 
-| mp0013 | Mattias Persson             8 | 
-| et0003 | Elias Tegström          |     8 | 
-| as0044 | André Sjöström          |     8 | 
-| af0018 | Alva Forslund               9 | 
-| jj0020 | Jim Johansson               9 | 
-| dj9428 | David Gyll Jonsson      |     9 | 
-| jg0015 | Josef Gerhardsson          10 | 
-| ee7874 | Emil Eriksson              10 | 
-| ef5135 | Edvin Forsgren          |    10 | 
-| wn0001 | William Norberg            10 | 
-| ya0001 | Yasir Al-Latifi            10 | 
-| rg4999 | Rasmus Gustafsson          10 | 
-| jl0073 | Jim Lundin              |    10 | 
-| jg0017 | Julius Gustafsson          11 | 
-| dn0007 | Didrik Nilsson          |    11 | 
-| js8177 | Josefin Sundström          11 | 
-| js0523 | Johan Skarin            |    11 | 
-| so0013 | Samuel Olofsson            11 | 
-| fo0003 | Fredrik Öberg              11 | 
-| vm8563 | Victor Möller              12 | 
-| eb0027 | Emelie Boström          |    12 | 
-| jr0004 | Joel Rantala            |    12 | 
-| dm2156 | Darin Muhieddine        |    12 | 
-+--------+-------------------------+-------+ 
-</code> 
- 
-6. 
-Skriv en fråga som ger följande svarstabell: 
-<code> 
-+--------+-------------------------+-------+ 
-| login  | Name                    | items | 
-+--------+-------------------------+-------+ 
-| vm8563 | Victor Möller              12 | 
-| eb0027 | Emelie Boström          |    12 | 
-| jr0004 | Joel Rantala            |    12 | 
-| dm2156 | Darin Muhieddine        |    12 | 
-| jg0017 | Julius Gustafsson          11 | 
-| dn0007 | Didrik Nilsson          |    11 | 
-| js8177 | Josefin Sundström          11 | 
-| js0523 | Johan Skarin            |    11 | 
-| so0013 | Samuel Olofsson            11 | 
-| fo0003 | Fredrik Öberg              11 | 
-| jg0015 | Josef Gerhardsson          10 | 
-| ee7874 | Emil Eriksson              10 | 
-| ef5135 | Edvin Forsgren          |    10 | 
-| wn0001 | William Norberg            10 | 
-| ya0001 | Yasir Al-Latifi            10 | 
-| rg4999 | Rasmus Gustafsson          10 | 
-| jl0073 | Jim Lundin              |    10 | 
-| af0018 | Alva Forslund               9 | 
-| jj0020 | Jim Johansson               9 | 
-| dj9428 | David Gyll Jonsson      |     9 | 
-| jd0007 | Jacob Danielsson        |     8 | 
-| an0054 | Alexander Näslund           8 | 
-| mp0013 | Mattias Persson             8 | 
-| et0003 | Elias Tegström          |     8 | 
-| as0044 | André Sjöström          |     8 | 
-| js0015 | Jon Sellgren            |     7 | 
-| ss0032 | Samuel Sjöström             7 | 
-| jv0016 | Johan Vikström          |     7 | 
-| as0042 | Andreas Svensson        |     6 | 
-| hs0019 | Henrik Svensson             5 | 
-| jl5733 | Jesper Lindberg             5 | 
-| ab0043 | Alexander Bäckman           5 | 
-| mj0012 | Markus Johansson        |     4 | 
-| ms0005 | Martin Sjölund          |     4 | 
-| lv2726 | Leo Vedberg                 3 | 
-| ae0042 | Alexander Eriksson      |     3 | 
-| pn9149 | Pelle Nordström             3 | 
-| vs0014 | Viktor Södersten        |     3 | 
-| mp0008 | Markus Pettersson           3 | 
-| ee2753 | Erik Elfving            |     3 | 
-| oa1675 | Oskar Andersson             2 | 
-| jw2123 | Joakim Wiklund          |     2 | 
-| ab0030 | Adrian Byström          |     2 | 
-| ro0002 | Robin Olsson            |     1 | 
-| lp0001 | Liza Pettersson             1 | 
-| an0050 | Anton Nilsson (te14)    |     1 | 
-| ka2211 | Khaled Al Moulla        |     0 | 
-| sh2998 | Simon Hägglund          |     0 | 
-| gn8265 | Gabriel Backman Norgren |     0 | 
-| jl0021 | Johan Lindström             0 | 
-| aa0024 | Adam Åström                 0 | 
-| js0016 | Jonathan Söderlind      |     0 | 
-| dj0006 | Dennis Johansson        |     0 | 
-| av0018 | Albin von Ahn               0 | 
-+--------+-------------------------+-------+ 
-</code> 
-7. 
-Skriv en fråga som ger följande svarstabell, alltså bara de som inte har gjort något inlägg: 
-<code> 
-+--------+-------------------------+-------+ 
-| login  | Name                    | items | 
-+--------+-------------------------+-------+ 
-| dj0006 | Dennis Johansson        |     0 | 
-| ka2211 | Khaled Al Moulla        |     0 | 
-| gn8265 | Gabriel Backman Norgren |     0 | 
-| aa0024 | Adam Åström                 0 | 
-| av0018 | Albin von Ahn               0 | 
-| sh2998 | Simon Hägglund          |     0 | 
-| jl0021 | Johan Lindström             0 | 
-| js0016 | Jonathan Söderlind      |     0 | 
-+--------+-------------------------+-------+ 
-</code> 
- 
-8. 
-Gör en webbsida som visar alla användare, man skall kunna se hur många inlägg varje användare har och man skall kunna klicka på användare eller siffran för antal inlägg och då skall man se en sida som visar alla inlägg för den användaren + att det skall stå vilken användare det är man tittar på. Det skall också finnas en länk tillbaka till sidan som visar alla inlägg. Sidorna skall vara validerade och se trevlig ut. 
- 
- 
-<php> 
-/* 
-Lite svar 
-4. 
-SELECT login, Name, count(item_id) as items FROM join_users left join join_items using(user_id) group by user_id; 
- 
-subselect 
-select * from (SELECT login, Name, count(item_id) as items FROM join_users left join join_items using(user_id) group by user_id ) asS where items=0; 
-*/ 
-</php>