2015-09-19 3 views
0

Я хочу выбрать следующие значения с тем же идентификатором. У меня в основном есть форма отправки, в которой хранятся ее значения, и я хочу отобразить каждую отправку. Это как Databse таблица выглядит следующим образом:SQL выбирает строки, где id одинаковый

| id |   name |  value | 
------------------------------------ 
| 1 |  venue_1 |  New York | 
| 1 |  time_1 |  12:00 | 
| 1 |  costs_1 |   50€ | 
| 2 |  venue_1 |  Berlin | 
| 2 |  time_1 |  15:00 | 
| ... |   ... |   ... |  

Я хочу, чтобы отобразить значения, как это:

|  Venue |  Time | Cost | 
------------------------------------ 
| New York |  12:00 |  50€ | 
|  Berlin |  15:00 |  ... | 
| A Venue | The time | cost | 

Мои SQL запросов в PHP выглядеть следующим образом (Joomla):

$db->setQuery('SELECT value FROM subrecords WHERE name = "venue_1"'); 
$venue = $db->loadColumn(); 

$db->setQuery('SELECT value FROM subrecords WHERE name = "time_1"'); 
$time = $db->loadColumn(); 

Но когда я просматриваю их, чтобы показать их, это не соответствует:

foreach ($venue as $key => $val) { 
    $output .= "<tr> 
    <td>".$venue[$key]."</td> 
    <td>".$time[$key]."</td> 
    </tr>"; 
} 
print($output); 

Я не вижу здесь логики, потому что на данный момент я просто выбираю все место_1 и time_1 и т. Д. И загружаю столбцы, чтобы получить каждое значение, но они должны быть связаны друг с другом, чтобы я мог отображать их в правильном направлении ,

Где моя ошибка? Как я могу связать их через идентификатор, может быть?

Если что-то неясно, скажите мне, пожалуйста, я не хочу, чтобы сделать его трудным для вас, чтобы помочь мне :)

+1

why downvote? Можете ли вы сказать мне, как совместить идентификатор? – Mugen

+1

Ваш вопрос не заслуживает ниспроверки. Я могу дать вам только один голос. –

ответ

4

Здесь вы можете получить все в одном запросе. Когда вы удаляете строку WHERE, вы получаете таблицу отверстий

SELECT 
    Coalesce ((CASE WHEN name = "venue_1" THEN value END),NULL) Vebue, 
    Coalesce ((CASE WHEN name = "time_1" THEN value END),NULL) Time, 
    Coalesce ((CASE WHEN name = "cost_1" THEN value END),0) Coast 
    FROM subrecords 
    WHERE id = 1 
    GROUP BY id; 
+0

Почему-то ничего не возвращает мне, есть ли у вас решение с более простым SQL? Я довольно новичок в этом и хочу это понять – Mugen

+0

Ну, мне кажется, мне нужно было только ORDER BY id при выборе каждого столбца ... Я чувствую себя довольно глупо сейчас, но спасибо за помощь – Mugen

Смежные вопросы