2013-10-02 2 views
0

Я использую codeigniter.mysql запрос для выбора из двух таблиц mysql

У нас есть две таблицы mysql.

Что я делаю, беру все детали в первой таблице и подавая на страницу html, чтобы пользователи могли ее просмотреть. Но теперь я хочу добавить некоторые детали из второй таблицы, связанной с столбцом в первой таблице.

Я имею в виду столбец в первом вызове таблицы «Pending_on» в этом столбце. Я вставил некоторые имена ветвей , а во второй таблице я ввел контактные данные этих отделов.

Итак, если мы думаем, что в первой таблице пятый ряд pending_on столбец имеет значение «HR», тогда я хочу отобразить номер телефона отдела HR.

Итак, как я могу написать запрос для этого?

+2

Что вам нужно, это запрос соединения, вы можете найти более подробную информацию здесь: http://ellislab.com/codeigniter/user-guide/database/active_record.html#select –

+0

Фактически я не знаю, как это сделать. можете ли вы, пожалуйста, мне как? – Yasitha

ответ

2

В вашем случае, вот пример:

Есть 2 таблицы с именем запись и подписки.

 entry 
     field1 publisherId 
     field2 entry 

     subscription 
     field1 myId 
     field2 friendId 

Вы можете использовать РЕГИСТРИРУЙТЕСЬ. В простое SQL:

SELECT e.publisherId, e.entry 
FROM entry e 
JOIN subscription s 
ON s.friendId = e.publisherId 
WHERE s.myId = 1234 
+0

Могу ли я использовать это без подсказки Where? – Yasitha

+2

Да, но он получит более одного ряда. – Jeemusu

+0

да, мне нужно взять все строки в первой таблице – Yasitha

1

Давайте рассмотрим ваш пример. У вас есть имя столбца pending_on в вашей первой таблице, а во второй таблице у вас есть столбец department_name. Найдите ниже код для соединения этих двух таблиц,

$this->db->select('firsttable.*,secondtable.contact_details'); 
$this->db->from('firsttable'); 
$this->db->join('secondtable', 'firsttable.pending_on = secondtable.department_name','left'); 
$query = $this->db->get(); 

Так, The department_name во второй таблице и pending_on в первой таблице, должны иметь такое же значение, как вы упомянули «HR». И мое предложение состоит в том, чтобы идентификатор таблицы был ссылкой вместо имен отделов. Надеюсь это поможет.

+0

это работает, но если в обеих таблицах нет соответствующих элементов, этот запрос не дает мне что-нибудь. но я хочу, чтобы мне нужно было взять все строки первой таблицы, если в обоих – Yasitha

+1

$ this-> db-> join ('secondtable', 'firsttable.pending_on = secondtable.department_name', 'left «); Надеюсь, что это удовлетворит ваше состояние !! :) –

+1

** '$ this-> db-> join ('secondtable', 'firsttable.pending_on = secondtable.department_name', 'left');' Надеюсь, это удовлетворит ваши условия !! :) –

1

это запрос я использовал, чтобы делать свою работу

и благодарность к MR. Yuvvaraj Bathrabagu

$ this-> db-> select ('*'); $ this-> db-> from ('new_users'); $ this-> db-> join ('контакт', 'new_users.pending_on = contact.dep', 'left'); $ query = $ this-> db-> get(); $ data = $ query-> result_array();

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