{"id":240,"date":"2010-11-20T12:26:53","date_gmt":"2010-11-20T11:26:53","guid":{"rendered":"https:\/\/d-mueller.de\/blog\/?p=240"},"modified":"2010-11-26T23:26:51","modified_gmt":"2010-11-26T22:26:51","slug":"mysql-views","status":"publish","type":"post","link":"https:\/\/d-mueller.de\/blog\/mysql-views\/","title":{"rendered":"MySQL Views"},"content":{"rendered":"<p>Views sollten eigentlich jedem Webdeveloper bekannt sein, deswegen versteht sich der Post hier eher als kleiner &#8222;Reminder&#8220;. Legen wir doch direkt mit einem Beispiel los. Ich habe eine Tabelle <b>pizzas<\/b>:<br \/>\n<div id=\"attachment_241\" style=\"width: 169px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/d-mueller.de\/blog\/wp-content\/uploads\/2010\/11\/pizzas.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-241\" src=\"https:\/\/d-mueller.de\/blog\/wp-content\/uploads\/2010\/11\/pizzas.png\" alt=\"Tabelle pizzas\" title=\"Tabelle pizzas\" width=\"159\" height=\"71\" class=\"size-full wp-image-241\" \/><\/a><p id=\"caption-attachment-241\" class=\"wp-caption-text\">Tabelle pizzas<\/p><\/div><\/p>\n<p>Und eine Tabelle <b>ingredients<\/b>:<br \/>\n<div id=\"attachment_242\" style=\"width: 149px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/d-mueller.de\/blog\/wp-content\/uploads\/2010\/11\/ingredients.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-242\" src=\"https:\/\/d-mueller.de\/blog\/wp-content\/uploads\/2010\/11\/ingredients.png\" alt=\"Tabelle ingredients\" title=\"Tabelle ingredients\" width=\"139\" height=\"156\" class=\"size-full wp-image-242\" \/><\/a><p id=\"caption-attachment-242\" class=\"wp-caption-text\">Tabelle ingredients<\/p><\/div><\/p>\n<p>Klassische 1:n-Beziehung also. Ich habe eine wunderbare, normalisierte Datenhaltung (okay, man k\u00f6nnte auch den Zutaten noch eine Zutaten-ID geben aber das verkompliziert das Beispiel unn\u00f6tig). Wenn ich jetzt allerdings h\u00e4ufig den Bezug der Pizza zu den Zutaten brauche, schreibe ich in vielen Funktionen joins von ingredients auf pizzas. <b>Das geht schlauer! &#8211; mit Views.<\/b><\/p>\n<pre data-enlighter-language=\"sql\" class=\"EnlighterJSRAW\">\r\nCREATE VIEW pizzaingredients AS\r\n\tSELECT p.*, i.ingredient\r\n\tFROM pizzas p\r\n\tLEFT JOIN ingredients i ON i.pizzaid = p.id\r\n<\/pre>\n<p>Feuert man dieses Statement raus, wird die View erstellt und ist ab jetzt wie eine Tabelle in eurem Datenbank-Tool aufrufbar. Sieht \u00fcbrigens dann so aus:<br \/>\n<div id=\"attachment_243\" style=\"width: 242px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/d-mueller.de\/blog\/wp-content\/uploads\/2010\/11\/view.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-243\" src=\"https:\/\/d-mueller.de\/blog\/wp-content\/uploads\/2010\/11\/view.png\" alt=\"View\" title=\"View\" width=\"232\" height=\"159\" class=\"size-full wp-image-243\" \/><\/a><p id=\"caption-attachment-243\" class=\"wp-caption-text\">View<\/p><\/div>\n<\/p>\n<p>Nun k\u00f6nnt ihr auf der View so abfragen, als ob es eine normale Tabelle w\u00e4re. Wenn mir jetzt noch jemand verraten kann, warum Views gef\u00fchlt von niemandem verwendet werden, w\u00e4r ich wieder ein bisschen schlauer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Views sollten eigentlich jedem Webdeveloper bekannt sein, deswegen versteht sich der Post hier eher als kleiner &#8222;Reminder&#8220;. Legen wir doch direkt mit einem Beispiel los. Ich habe eine Tabelle pizzas: Und eine Tabelle ingredients: Klassische 1:n-Beziehung also. Ich habe eine &hellip; <a href=\"https:\/\/d-mueller.de\/blog\/mysql-views\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,3],"tags":[],"class_list":["post-240","post","type-post","status-publish","format-standard","hentry","category-datenbanken","category-webdev"],"_links":{"self":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/comments?post=240"}],"version-history":[{"count":0,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/240\/revisions"}],"wp:attachment":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/media?parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/categories?post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/tags?post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}