Mysql Custom select query

0

У меня есть два запроса mysql

SELECT `name` AS name1,`id` AS id1 FROM `table` WHERE id=1
SELECT `name` AS name2,`id` AS name2 FROM `table` WHERE id=2

Результаты будут выводиться следующим образом

NAME1  ID1
john  1
NAME2  ID2
meg   2

Есть ли в любом случае, что из 2 запросов я бы сделал 1, и он отобразит все результаты в 1 строке из одной таблицы?

NAME1   ID1  NAME2   ID2
john     1   meg     2
  • 0
    Есть способ, которым это можно сделать, но это было бы очень уродливо и очень неортодоксально. Можете ли вы объяснить причину, по которой вы не можете делать запросы, как в ответах, представленных ниже?
Теги:

5 ответов

0
Лучший ответ

выберите tbl1.name, tbl1.id, tbl2.name, tbl2.id из mytable tbl1, mytable tbl2

но этот запрос будет бесполезным, он даст вам целые комбинации двух имен в любом порядке из вашей таблицы, вы можете отфильтровать его с предложением WHERE, но.. сколько у вас имен? зачем это делать? возможно, если мы знаем, что вы пытаетесь сделать, мы можем дать вам лучший ответ

ИЗМЕНИТЬ ohhh Теперь я вижу ваши запросы... это должно быть что-то вроде этого

select tbl1.name,tbl1.id,tbl2.name,tbl2.id from mytable tbl1,mytable tbl2  where tbl1.id=1 and tbl2.id=2
2
SELECT t1.name AS name1, t1.id AS id1, t2.name as name2, t2.id as id2
FROM table as t1, table as t2 WHERE t1.id = 1 and t2.id = 2;
1
Select Min( Case When Id = 1 Then Id End ) As Id1
    , Min( Case When Id = 1 Then Name End ) As Name1
    , Min( Case When Id = 2 Then Id End ) As Id2
    , Min( Case When Id = 2 Then Name End ) As Name2
From `table`
Where Id In(1,2)
  • 0
    +1: я предпочитаю использовать MAX - более очевидный IMO
  • 0
    Любопытный отрицательный голос. Я был бы очарован, узнав причины.
0

Вы можете комбинировать запрос, подобный этому

SELECT `name`,`id` FROM `table` WHERE id=1 OR id=2

но вы все равно получите два результата. Что вы пытаетесь сделать с результатом?

0

Вы имеете в виду что-то вроде использования OR в предложении WHERE? Как:

SELECT `name`,`id` FROM `table` WHERE id=1 OR id = 2
  • 1
    Это приведет к двум рядам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню