mysql-是否可以在不使用关系的情况下联接原则ORM中的表?

前端之家收集整理的这篇文章主要介绍了mysql-是否可以在不使用关系的情况下联接原则ORM中的表? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

假设有两个表.

  1. Table X--
  2. Columns:
  3. id x_value
  4. Table Y--
  5. Columns:
  6. id x_id y_value

现在,我不想在学说类中定义关系,并且我想使用像这样的查询使用这两个表来检索一些记录:

  1. Select x_value from x,y where y.id="variable_z" and x.id=y.x_id;

我无法弄清楚如何在准则orm中编写这样的查询

编辑:

表结构:

表格1:

  1. CREATE TABLE IF NOT EXISTS `image` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,`random_name` varchar(255) NOT NULL,`user_id` int(11) NOT NULL,`community_id` int(11) NOT NULL,`published` varchar(1) NOT NULL,PRIMARY KEY (`id`)
  3. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=259 ;

表2:

  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,`city` varchar(20) DEFAULT NULL,`state` varchar(20) DEFAULT NULL,`school` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`)
  3. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;

查询我正在使用:

  1. $q = new Doctrine_Rawsql();
  2. $q ->select('{u.*},{img.*}')
  3. ->from('users u LEFT JOIN image img ON u.id = img.user_id')
  4. ->addComponent('u','Users u')
  5. ->addComponent('img','u.Image img')
  6. ->where("img.community_id='$community_id' AND img.published='y' AND u.state='$state' AND u.city='$city
  7. ->orderBy('img.id DESC')
  8. ->limit($count+12)
  9. ->execute();

我得到的错误

  1. Fatal error: Uncaught exception 'Doctrine_Exception' with message 'Couldn't find class
  2. u' in C:\xampp\htdocs\fanyer\doctrine\lib\Doctrine\Table.PHP:290 Stack trace: #0
  3. C:\xampp\htdocs\fanyer\doctrine\lib\Doctrine\Table.PHP(240): Doctrine_Table- >initDefinition() #1 C:\xampp\htdocs\fanyer\doctrine\lib\Doctrine\Connection.PHP(1127):
  4. Doctrine_Table->__construct('u',Object(Doctrine_Connection_MysqL),true) #2
  5. C:\xampp\htdocs\fanyer\doctrine\lib\Doctrine\Rawsql.PHP(425): Doctrine_Connection-
  6. >getTable('u') #3 C:\xampp\htdocs\fanyer\doctrine\models\Image.PHP(33): Doctrine_Rawsql-
  7. >addComponent('img','u.Image imga') #4 C:\xampp\htdocs\fanyer\community_images.PHP(31):
  8. Image->get_community_images_gallery_filter(4,'AL','ALBERTVILLE') #5 {main} thrown in
  9. C:\xampp\htdocs\fanyer\doctrine\lib\Doctrine\Table.PHP on line 290
最佳答案
尝试这样的事情:—

  1. $q = new Doctrine_Rawsql();
  2. $this->related_objects = $q->
  3. select('{o.name}')->
  4. from('tagset t1 JOIN tagset t2 ON t1.tag_id = t2.tag_id AND t1.object_id != t2.object_id JOIN object o ON t2.object_id = o.id')->
  5. addComponent('o','Object o')->
  6. where('t1.object_id = ?',$this->object->id)->
  7. groupBy('t2.object_id')->
  8. orderBy('COUNT(*) DESC')->
  9. execute();

猜你在找的MySQL相关文章