простейший select, но не все так просто(?)

368
05 января 2017, 08:25
mysql> describe skin;
+--------------+------------------+------+-----+---------+----------------+
| Field        | Type             | Null | Key | Default | Extra          |
+--------------+------------------+------+-----+---------+----------------+
| skinid       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| skin_name    | varchar(15)      | NO   |     | NULL    |                |
| skin_way     | varchar(32)      | NO   |     | NULL    |                |
| date_skin    | int(10) unsigned | NO   | MUL | NULL    |                |
| skin_count   | int(10) unsigned | NO   |     | NULL    |                |
| uid_skinfrom | int(10) unsigned | NO   | MUL | NULL    |                |
| skcatid_skin | int(10) unsigned | NO   |     | NULL    |                |
+--------------+------------------+------+-----+---------+----------------+

Нужно из этой тбл выташить значения, одной строкой, но в ДВУХ колонках:

Нужно получить значение skin_count но для разных skinid. В пример приведу два запроса, которые Нужно объебенить. Знаю что можно использовать перепривязку параметров mysqli_stmt_bind_param(), но можно ли в одной строкой вытащить два значения?

Вот примеры запросов (их нужно объеденить в один, ну, эээ, если такое возможно?):

select skin_count from skin where skinid=$_SESSEION['cur_skin'];
select skin_count from skin where skinid=$new_skinid;

Хочу получить нечто наподобии

+--------------+-----------+
| oldcount     | newcount  |
+--------------+-----------+
| 48           | 25        |
+--------------+-----------+

Как такое сделать as`ами или вложенными апросами или еще как-то чем-то?

Answer 1
SELECT MAX(CASE skinid WHEN $_SESSION['cur_skin'] THEN skin_count END) oldcount
     , MAX(CASE skinid WHEN $new_skinid THEN skin_count END) newcount
FROM skin; 
Answer 2

select (select skin_count from skin where skinid={$_SESSEION['cur_skin']}) as curskin, (select skin_count from skin where skinid=$new_skinid) as newskin

Answer 3

Можно еще так:

select A.skin_count, B.skin_count
  from skin A, skin B
 where A.skinid=$_SESSEION['cur_skin'] and B.skinid=$new_skinid;

Но с ограничениями - оба ID гарантированно должны быть в БД. Если хотя бы одного ID не окажется - то запрос ничего не вернет

READ ALSO
Какой вариант лучше для реализации?

Какой вариант лучше для реализации?

Какой вариант лучше для реализации: статическими методами или через объект?

333
SQL Запрос update не работает

SQL Запрос update не работает

Не пойму что делаю не так, поправьте пожалуйста:

443
Регулярное выражение php

Регулярное выражение php

Есть функция

304