Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.98 KB | None | 0 0
  1.  
  2. select d.orderId as id, a.firstname, a.secondname,
  3. concat_ws(', ', b.street, b.city, b.postcode) as adress,
  4. a.telephone, c.title as bookTitle,
  5. concat_ws(' ', f.firstName, f.middleName, f.lastName) as bookAuthor1,
  6. substring(group_concat(' ', concat_ws(' ', g.firstName, g.middleName, g.lastName)), length(concat_ws(' ', g.firstName, g.middleName, g.lastName))/2+3) as bookAuthor2,
  7. c.pageCount
  8. from books as c
  9. left JOIN orders as d
  10. on d.bookId = c.bookId
  11. left join customers as a
  12. on d.userId = a.id
  13. left JOIN adresses as b
  14. on a.id = b.userId
  15. left join autorsbooks as e
  16. on c.bookId = e.bookId
  17. join autors as f
  18. on e.authorId = f.id
  19. join autors as g
  20. on e.authorId = g.id
  21.  GROUP BY d.orderId;
  22.  
  23.  
  24. Тут запрос создаёт представления, но можно просто удалить все слова до select
  25. CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `lesson4_position3`
  26. AS SELECT
  27.    `orders`.`orderId` AS `id`,
  28.    `customers`.`firstname` AS `firstname`,
  29.    `customers`.`secondname` AS `secondname`,concat(`adresses`.`street`,', ',`adresses`.`city`,', ',`adresses`.`postcode`) AS `adress`,
  30.    `customers`.`telephone` AS `telephone`,
  31.    `books`.`title` AS `title`,concat(`autors`.`firstName`,' ',ifnull(`autors`.`middleName`,''),' ',`autors`.`lastName`) AS `bookAuthor1`,substr(substr(group_concat(`autors`.`firstName`,' ',ifnull(`autors`.`middleName`,''),' ',`autors`.`lastName` separator ','),locate(',',group_concat(`autors`.`firstName`,' ',ifnull(`autors`.`middleName`,''),' ',`autors`.`lastName` separator ','))),2) AS `bookAuthor2`,
  32.    `books`.`pageCount` AS `pageCount`,
  33.    `orders`.`dateOrder` AS `dateOrder`
  34. FROM (((((`orders` join `customers` on((`orders`.`userId` = `customers`.`id`))) join `adresses` on((`customers`.`id` = `adresses`.`userId`))) join `books` on((`orders`.`bookId` = `books`.`bookId`))) join `autorsbooks` on((`books`.`bookId` = `autorsbooks`.`bookId`))) join `autors` on((`autorsbooks`.`authorId` = `autors`.`id`))) group by `orders`.`orderId`;
  35.  
  36.  
  37. SELECT
  38. Orders.orderId,
  39. Customers.firstname,
  40. Customers.secondname,
  41. GROUP_CONCAT(Adresses.street, ', ', Adresses.city, ', ', Adresses.postcode) as 'adress',
  42. Customers.telephone,
  43. Books.title as 'bookTitle',
  44. CONCAT(Autors.firstName,' ',COALESCE(Autors.middleName,''), ' ', Autors.lastName) as bookAuthor,
  45. CASE
  46. WHEN substring_index(GROUP_CONCAT(Autors.firstName,' ',COALESCE(Autors.middleName,''), ' ', Autors.lastName),',',-1) = CONCAT(Autors.firstName,' ',COALESCE(Autors.middleName,''), ' ', Autors.lastName)
  47. THEN ''
  48. ELSE substring_index(GROUP_CONCAT(Autors.firstName,' ',COALESCE(Autors.middleName,''), ' ', Autors.lastName),',',-1)
  49. END as bookAuthor2,
  50. Books.pageCount,
  51. Orders.dateOrder
  52. FROM Orders
  53. join Customers
  54. on Orders.userId = Customers.id
  55. join Books
  56. on Orders.bookId = Books.bookId
  57. join AutorsBooks
  58. on Books.bookId = AutorsBooks.bookId
  59. join Autors
  60. on Autors.id = AutorsBooks.id
  61. join Adresses
  62. on Customers.id = Adresses.userId
  63. GROUP by Orders.orderId
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement