2015-02-28 3 views
0

Я пытаюсь запросить только две разные таблицы, чтобы увидеть, есть ли одно совпадение. Я провел много исследований о том, как это сделать, и все, что я вижу, использует предложение join. Но я не ищу соответствия между двумя таблицами. Мне просто нужно запросить обе таблицы и посмотреть, есть ли одна строка с совпадением.Запрос двух таблиц в CodeIgniter

Это код, который я использую.

 $query = " SELECT id,account_type,email, password FROM client 
       WHERE email = ? 
       UNION 
      SELECT id,account_type,email, password FROM freelancers 
      WHERE email = ? "; 


    $email = $this->input->post("email"); 

    $result = $this->db->query($query, [$email]); 

    // Just check if first there is an email that exists the database 
    if($result -> num_rows() == 1) { 
     //Do something 
    } 
+0

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

+0

Вопрос, похоже, не связан с codeigniter или php, он специфичен для mysql. У вас ** есть ** для запуска одного запроса для этого? Почему вы не можете запускать отдельные запросы для каждой таблицы и обрабатывать результаты в php? –

+0

@despina Извините, я сказал это неправильно. Я пытаюсь запустить запрос по обеим таблицам и посмотреть, получилось ли одно соответствие по электронной почте. –

ответ

0

Вы можете попробовать использовать подзапрос:.

$query = "SELECT * FROM client WHERE email = (SELECT email FROM freelancers WHERE email = ?)"; 
$email = $this->input->post("email"); 
$result = $this->db->query($query, array($email)); 
Смежные вопросы