Mysql complexity of choice in different ways

In our company, we have a simple ticketing system for internal requests
(for example, Mac registration, mail activation, etc.)
that sysman will take care of.
The basic structure is as follows:

table tickets

  • uid (integer)
  • issu_by (string)
  • issu_on (datetime)
  • ticket_type (string)

ticket_params table

  • uid (integer)
  • ticket_uid (integer, not foreign key)
  • parameter (string)
  • content_parameter (string)

A ticket related to a goal can have different parameters.
The request for the mac address has a parameter "mac_1", "mac_2", "expiry", "model" and "comment".

We need a query that gives all this data. My worker comes across this:

select tickets.uid, tickets.issued_by,tickets.issued_on,
(select parameter_content from ticket_parameters where parameter="Model" and
ticket_uid=tickets.uid) "model",
(select parameter_content from ticket_parameters where parameter="Comments"
and ticket_uid=tickets.uid) "comments",
(select parameter_content from ticket_parameters where parameter="mac_1" and
ticket_uid=tickets.uid) "mac1",
(select parameter_content from ticket_parameters where parameter="mac_2" and
ticket_uid=tickets.uid) "mac2",
(select parameter_content from ticket_parameters where parameter="Expiry"
and ticket_uid=tickets.uid) "Expiry" from tickets;

, : ", ! ?"

, , :

select
  tickets.uid,
  tickets.issued_by,
  tickets.issued_on,
  f.parameter_content as Model,
  e.parameter_content as Comments,
  b.parameter_content as mac_1,
  d.parameter_content as mac_2,
  c.parameter_content as Expiry
from
  tickets,
  ticket_parameters as b,
  ticket_parameters as c,
  ticket_parameters as d,
  ticket_parameters as e,
  ticket_parameters as f
where
    tickets.uid=b.ticket_uid AND b.parameter='mac_1'
  AND
    c.ticket_uid=tickets.uid AND c.parameter='Expiry'
  AND
    d.ticket_uid=tickets.uid AND d.parameter='mac_2'
  AND
    e.ticket_uid=tickets.uid AND e.parameter = 'Comments'
  AND
    f.ticket_uid=tickets.uid AND f.parameter = 'Model'
  ;

, 2 ( 1000 ), 47 . , , .

, ? , , ?

+3
1

EXPLAIN EXTENDED... , .

, mysql , , mysql ( , mysql).

restrictions 5.0

+2

Source: https://habr.com/ru/post/1778753/


All Articles