diff --git a/solutions/1.sql b/solutions/1.sql
index c599583..e4caa53 100644
--- a/solutions/1.sql
+++ b/solutions/1.sql
@@ -1,8 +1,9 @@
-CREATE TABLE songs (
-  id INT NOT NULL AUTO_INCREMENT,
-  name VARCHAR(255) NOT NULL,
-  length FLOAT NOT NULL,
-  album_id INT NOT NULL,
-  PRIMARY KEY (id),
-  FOREIGN KEY (album_id) REFERENCES albums(id)
+CREATE TABLE songs
+(
+id int NOT NULL AUTO_INCREMENT,
+name varchar(255) NOT NULL,
+length float NOT NULL,
+album_id int NOT NULL,
+PRIMARY KEY(id),
+FOREIGN KEY(album_id) REFERENCES albums(id)
 );
\ No newline at end of file
diff --git a/solutions/10.sql b/solutions/10.sql
index a6fb165..f9eaa72 100644
--- a/solutions/10.sql
+++ b/solutions/10.sql
@@ -1,2 +1,2 @@
-SELECT AVG(length) as 'Average Song Duration'
+SELECT avg(length) AS 'Average Song Duration'
 FROM songs;
\ No newline at end of file
diff --git a/solutions/11.sql b/solutions/11.sql
index 3c32272..47d13f3 100644
--- a/solutions/11.sql
+++ b/solutions/11.sql
@@ -1,7 +1,7 @@
-SELECT
-  albums.name AS 'Album',
-  albums.release_year AS 'Release Year',
-  MAX(songs.length) AS 'Duration'
+SELECT albums.name AS 'Name', albums.release_year AS 'Release Year', longest_songs.duration AS 'Duration'
 FROM albums
-JOIN songs ON albums.id = songs.album_id
-GROUP BY songs.album_id;
\ No newline at end of file
+INNER JOIN (
+	SELECT album_id, max(length) AS duration FROM songs
+	GROUP BY album_id
+) AS longest_songs
+ON albums.id = longest_songs.album_id;
\ No newline at end of file
diff --git a/solutions/12.sql b/solutions/12.sql
index 8beb83b..20997fd 100644
--- a/solutions/12.sql
+++ b/solutions/12.sql
@@ -1,7 +1,14 @@
-SELECT
-  bands.name AS 'Band',
-  COUNT(songs.id) AS 'Number of Songs'
+SELECT bands.name AS 'Band', songs_per_band AS 'Number of Songs'
 FROM bands
-JOIN albums ON bands.id = albums.band_id
-JOIN songs ON albums.id = songs.album_id
-GROUP BY albums.band_id;
\ No newline at end of file
+INNER JOIN (
+	SELECT band_id, sum(albums_songs.songs_per_album) AS songs_per_band
+    FROM albums
+    INNER JOIN (
+		SELECT album_id, count(album_id) AS songs_per_album
+        FROM songs
+        GROUP BY album_id
+	) AS albums_songs
+    ON albums.id = albums_songs.album_id
+    GROUP BY band_id
+) AS bands_songs
+ON bands.id = bands_songs.band_id;
\ No newline at end of file
diff --git a/solutions/2.sql b/solutions/2.sql
index f7d1977..771c6ad 100644
--- a/solutions/2.sql
+++ b/solutions/2.sql
@@ -1,2 +1,2 @@
-SELECT bands.name AS 'Band Name'
+SELECT name AS 'Band Name'
 FROM bands;
\ No newline at end of file
diff --git a/solutions/3.sql b/solutions/3.sql
index 36500fb..ecf07bd 100644
--- a/solutions/3.sql
+++ b/solutions/3.sql
@@ -1,4 +1,14 @@
-SELECT * FROM albums
+# My solution
+SELECT albums.*
+FROM albums
+INNER JOIN 
+(SELECT min(release_year) AS release_year FROM albums) AS oldest_album
+ON albums.release_year = oldest_album.release_year;
+
+
+# Given solution
+SELECT *
+FROM albums
 WHERE release_year IS NOT NULL
 ORDER BY release_year
 LIMIT 1;
\ No newline at end of file
diff --git a/solutions/4.sql b/solutions/4.sql
index 8df1baf..9f220d6 100644
--- a/solutions/4.sql
+++ b/solutions/4.sql
@@ -1,14 +1,21 @@
+# Solution 1
+/* Assumes that bands with different ids have different names. */
+SELECT DISTINCT(b.name) AS 'Band Name'
+FROM albums AS a
+INNER JOIN (bands AS b) ON a.band_id = b.id;
 
-/* This assummes all bands have a unique name */
-SELECT DISTINCT bands.name AS 'Band Name'
+
+/* The following two solutions don't assume that. */
+
+# Solution 2
+SELECT name AS 'Band Name'
+FROM bands
+INNER JOIN (SELECT DISTINCT(band_id) AS album_band_id FROM albums) AS bands_with_albums
+ON bands_with_albums.album_band_id = bands.id;
+
+
+# Solution 3
+SELECT name AS 'Band Name'
 FROM bands
-JOIN albums ON bands.id = albums.band_id;
-
-/* If bands do not have a unique name then use this query */
-/* 
-  SELECT bands.name AS 'Band Name'
-  FROM bands
-  JOIN albums ON bands.id = albums.band_id
-  GROUP BY albums.band_id
-  HAVING COUNT(albums.id) > 0;
-*/
\ No newline at end of file
+INNER JOIN (SELECT band_id FROM albums GROUP BY band_id) AS bands_with_albums
+ON bands_with_albums.band_id = bands.id;
diff --git a/solutions/5.sql b/solutions/5.sql
index 6a5ebff..fd1afe0 100644
--- a/solutions/5.sql
+++ b/solutions/5.sql
@@ -1,5 +1,29 @@
-SELECT bands.name AS 'Band Name'
+# Solution 1
+/* Assumes band names are unique */
+SELECT DISTINCT(bands.name) AS 'Band Name'
 FROM bands
 LEFT JOIN albums ON bands.id = albums.band_id
-GROUP BY albums.band_id
-HAVING COUNT(albums.id) = 0;
\ No newline at end of file
+WHERE albums.band_id IS NULL;
+
+
+/* No such assumption */
+# Solution 2
+SELECT bands.name AS 'Band Name'
+FROM bands 
+INNER JOIN (
+	SELECT bands.id as id
+	FROM bands
+	LEFT JOIN albums ON bands.id = albums.band_id
+	WHERE albums.band_id IS NULL
+) AS bands_with_no_albums
+ON bands.id = bands_with_no_albums.id;
+
+
+/*
+Note:
+There's an issue with the given solution: https://github.com/WebDevSimplified/Learn-SQL/issues/8
+The fellow who closed it must have changed the mode of SQL to something else.
+But it's been suggested to use full_group_by mode for SQL to avoid "inconsistencies".
+(Basically, find a different way to solve your problem
+ without using columns in SELECT that were not included in your GROUP BY.)
+*/
\ No newline at end of file
diff --git a/solutions/6.sql b/solutions/6.sql
index aebd9dc..6466d3b 100644
--- a/solutions/6.sql
+++ b/solutions/6.sql
@@ -1,9 +1,9 @@
-SELECT
-  albums.name as Name,
-  albums.release_year as 'Release Year',
-  SUM(songs.length) as 'Duration'
-FROM albums
-JOIN songs on albums.id = songs.album_id
-GROUP BY songs.album_id
-ORDER BY Duration DESC
-LIMIT 1;
\ No newline at end of file
+SELECT albums.name AS 'Name', albums.release_year AS 'Release Year', longest_album.Duration
+FROM (
+	SELECT album_id, sum(length) AS 'Duration'
+    FROM songs
+    GROUP BY album_id
+    ORDER BY Duration DESC
+    LIMIT 1
+) AS longest_album
+INNER JOIN albums ON longest_album.album_id = albums.id;
\ No newline at end of file
diff --git a/solutions/7.sql b/solutions/7.sql
index 64a4164..e7a49c0 100644
--- a/solutions/7.sql
+++ b/solutions/7.sql
@@ -1,8 +1,4 @@
-/* This is the query used to get the id */
-/*
-  SELECT * FROM albums where release_year IS NULL;
-*/
-
-UPDATE albums
-SET release_year = 1986
-WHERE id = 4;
\ No newline at end of file
+UPDATE albums,
+	(SELECT id FROM albums WHERE release_year IS NULL) AS not_yet_released
+SET albums.release_year = 1986
+WHERE albums.id = not_yet_released.id;
\ No newline at end of file
diff --git a/solutions/8.sql b/solutions/8.sql
index 8ed5185..4ce9727 100644
--- a/solutions/8.sql
+++ b/solutions/8.sql
@@ -1,11 +1,9 @@
-INSERT INTO bands (name)
-VALUES ('Favorite Band Name');
+INSERT INTO bands(name)
+VALUES ('SSSPSN');
 
-/* This is the query used to get the band id of the band just added */
-/*
-  SELECT id FROM bands
-  ORDER BY id DESC LIMIT 1;
-*/
+SELECT * FROM bands;
 
-INSERT INTO albums (name, release_year, band_id)
-VALUES ('Favorite Album Name', 2000, 8);
\ No newline at end of file
+INSERT INTO albums(name, release_year, band_id)
+VALUES ('Bhajans', 2009, 8);
+
+SELECT * FROM albums;
\ No newline at end of file
diff --git a/solutions/9.sql b/solutions/9.sql
index b2f041e..e082a70 100644
--- a/solutions/9.sql
+++ b/solutions/9.sql
@@ -1,17 +1,11 @@
-/* This is the query used to get the album id of the album added in #8 */
-/*
-  SELECT id FROM albums
-  ORDER BY id DESC LIMIT 1;
-*/
-
 DELETE FROM albums
-WHERE id = 19;
+WHERE albums.band_id
+IN (SELECT id FROM bands WHERE name = 'SSSPSN');
+
+SELECT * FROM albums;
 
-/* This is the query used to get the band id of the band added in #8 */
-/*
-  SELECT id FROM bands
-  ORDER BY id DESC LIMIT 1;
-*/
 
 DELETE FROM bands
-WHERE id = 8;
\ No newline at end of file
+WHERE id IN (SELECT * FROM (SELECT id FROM bands WHERE name = 'SSSPSN') AS to_delete);
+
+SELECT * FROM bands;
\ No newline at end of file