Codeigniters aktif sınıf ham sql değişen

2 Cevap php

Ben bu var

SELECT *
FROM categoryTable
WHERE categoryId NOT
IN (

SELECT categoryId
FROM userMenuTable
WHERE cookieId = 'bang4b544417a41b6'
)

ama ben o kadar kullanarak codeigniters etkin kayıt sınıfını kullanmak istiyorum

$this->db

sözdizimi, birisi bana bu dönüştürmek yardımcı olacağını umuyordum?

2 Cevap

Bunu yapmak için iki yol:

Düz SQL:

$this->db->query('SELECT * FROM categoryTable WHERE categoryId NOT IN (
    SELECT categoryId FROM userMenuTable WHERE cookieId = "bang4b544417a41b6"
)');

Active Record + Düz NEREDE SQL

$this->db->where('categoryId', 'NOT IN (
    SELECT categoryId FROM userMenuTable WHERE cookieId = "bang4b544417a41b6"
)', FALSE);

$this->db->get('categoryTable');

Sen YANLIŞ ekleyerek bir WHERE yan tümcesi içine Düz SQL koyabilirsiniz db-> üçüncü argüman olarak nerede ();

Bu iş için hiçbir şey kıvrımlara olduğu bir ayıp olduğunu, ancak Active Record sadece katılır, emir, sınırları, vs ile basit sorgular için tasarlanmıştır

Bu mümkün değil. CodeIgniter ActiveRecord uygulama iç içe geçmiş sorguları desteklemez.