我有2张桌子.tbl_names并且tbl_section其中包含两个id领域.我如何选择该id字段,因为我总是收到此错误:
1052: Column 'id' in field list is ambiguous
这是我的查询:
SELECT id, name, section
  FROM tbl_names, tbl_section 
 WHERE tbl_names.id = tbl_section.id
我可以选择所有字段并避免错误.但这将是对性能的浪费.我该怎么办?
好的,这是我的困境,我有一个数据库设置,大约5个表都具有完全相同的数据结构.以这种方式分离数据以用于本地化目的并且总共分割大约450万条记录.
大多数时候只需要一张桌子,一切都很好.但是,有时需要从2个或更多表中获取数据,并且需要按用户定义的列进行排序.这是我遇到问题的地方.
数据列:
id, band_name, song_name, album_name, genre
MySQL声明:
SELECT * from us_music, de_music where `genre` = 'punk'
MySQL吐出这个错误:
#1052 - Column 'genre' in where clause is ambiguous
显然,我做错了.有人愿意为我阐明这一点吗?
我的数据库中有两个表:
新闻('id' - 新闻ID,'用户' - 作者的用户ID)
USERS('id' - 用户ID)
我想制作一个SELECT * FROM news JOIN users ON news.user = user.id,现在当我在PHP中得到结果时,它是这样的:
$row = mysql_fetch_array($result),并获取列名$row['column-name']...如何获取具有相同列名的新闻ID和用户ID?
更新:感谢大家的快速解答.别名似乎是最好的解决方案.
如何纠正我从下面的代码中得到的问题'user_id' in where clause is ambiguous.我在这里先向您的帮助表示感谢.
这是mysql表.
SELECT user.*, user_info.* 
FROM user 
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id='$user_id'
我在MySQL中遇到了连接子句中的这个错误,但我对这个JOIN参数还不太了解,我不确定这意味着什么.有人可以帮忙吗?
where子句中的列'id'是不明确的
SELECT * FROM (`venues`) 
JOIN `venues_meta` ON `venues_meta`.`venue_id` = `venues`.`id` 
WHERE `id` = '12'
我收到了这个错误
Mysql :: Error:字段列表中的列'id'不明确
当使用像这样的find方法时: self.prompts.find(:all, :select => 'id')
使用has_many:through关联调用模型,因此MySQL抱怨有多个'id'列,因为所有使用的3个表都有'id'列.
我查了一下,了解SQL端出了什么问题,但不知道如何在ActiveRecord find方法中解决它,而且我对自己的SQL能力没有信心尝试滚动自己的SQL查询.有没有办法将find方法按到能够发挥出色的效果?
编辑
这是相关的Actor模型代码:
class Actor < ActiveRecord::Base
  has_many :acts, :dependent => :destroy
  has_many :decisions, :through => :acts, :order => 'created_at'
  has_many :prompts, :through => :decisions, :order => 'id'
我加入了两张桌子
例如
table_A +---------+-----------+-----------+ | user_id | ticket_id | user_name | +---------+-----------+-----------+ table_B +-----------+-------------+ | ticket_id | ticket_name | +-----------+-------------+
如果我运行以下查询:
SELECT table_A.user_id , table_A.user_name , table_B.ticket_name FROM table_A LEFT JOIN table_B ON table_B.ticket_id = table_A.ticket_id WHERE ticket_id = '1';
在实时服务器上,我们收到错误:" Column 'ticket_id' in where clause is ambiguous" 
在测试服务器上接受查询.
我知道如何解决错误,这不是问题.
但是,如果我们的测试服务器不接受此查询并且(就像生产服务器那样)抛出错误,我会很高兴.
有没有人知道是否存在某种设置会使测试服务器像实时服务器一样抛出错误?
测试服务器
 
上的PS MySQL版本:Live服务器 
上的MySQL版本:5.0.32-Debian_7etch5-log5.0.41-community-log  
我有以下代码:
$selectColumns= array('user_id.user_email',
                    'user_details.first_name', 
                    'user_details.last_name', 
                    'user_details.zip', 
                    'user_details.store_id');
$result = $handle->select()->from('user_id')
                           ->where('uid=?', $uid)
                           ->columns($selectColumns)
                           ->join('user_details', 'user_id.uid = user_details.uid')
                           ->query(ZEND_DB::FETCH_OBJ);
运行后,我收到以下错误:
Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: '
Integrity constraint violation: 1052 Column 'uid' in where clause is ambiguous
我一直想弄清楚我做错了什么.有帮助吗?
我有下表:
mysql> SELECT *  FROM  `bright_promotion_earnings`;
+----+----------+------------+----------+-------+
| id | promoter | generation | turnover | payed |
+----+----------+------------+----------+-------+
|  1 |        4 |          1 |       10 |     0 | 
|  3 |        4 |          5 |      100 |     0 | 
|  4 |        4 |          3 |    10000 |     1 | 
|  5 |        4 |          3 |      200 |     0 | 
+----+----------+------------+----------+-------+
4 rows in set (0.00 sec)
有一个独特的密钥(发起人,代,付费):
+---------------------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table                     | Non_unique | Key_name   | Seq_in_index …可能重复:
1052:字段列表中的列'id'不明确
我有两个表,我想连接表sb_id(sb_id两个表是相同的).所以,我使用了这样的查询:
SELECT Name, 
       class 
  FROM student_info,
       student_class 
 WHERE id = 1 
   AND student_info.sb_id = student_class.sb_id;
它显示错误:
1052:where子句中的'id'含糊不清
另外,我想通过使用"JOIN"来显示一个结果.
您好我已经尝试在我的数据库中创建时间表视图但我遇到了admin_id列的问题.我正在重复使用其他任务的代码,因此我很困惑,为什么它不起作用.请帮我!!!
选择声明
SELECT timesheet_id, class, day, hour, week, admin_id, date_added FROM timesheet, day, classes, admin
WHERE timesheet_id AND
classes.class_id = timesheet.class_id AND
day.day_id = timesheet.day_id AND
admin.admin_id = timesheet.admin_id ORDER BY timesheet.timesheet_id.;
数据库代码
'CREATE DATABASE /*!32312 IF NOT EXISTS*/`timesheet` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `timesheet`;
/*Table structure for table `admin` */
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
  `admin_id` int(100) NOT NULL AUTO_INCREMENT,
  `username` varchar(10) DEFAULT NULL,
  `password` char(30) DEFAULT NULL,
  PRIMARY KEY (`admin_id`)
) ENGINE=InnoDB …我正在从两个表中选择数据.并且这两个表都有一个ID列,我需要ID在执行后返回两个列Query.有没有办法使用AS将ID列的名称(从我选择的第二个表)更改为其他内容?
我在想这样的事情:
SELECT * FROM table1, table2 WHERE table2.id AS newAlias
我可以像这样使用WHERE语句吗?
所以,我正试图获得某一课程的所有评论.它告诉course.php?cID = 1563的哪些评论是哪种方式的方式.cID是执行此区分的标识符.
它不断抛出这个致命的错误:致命错误:未捕获的异常'PDOException',消息'SQLSTATE [23000]:完整性约束违规:1052列'cID'在where子句中是不明确的'PDOStatement-> execute(Array)#1抛出在线42
(2)表的DB结构:

PHP:
<?php
// Get course information cID, prefix, code and dept info : name
$cID = filter_input(INPUT_GET, 'cID', FILTER_SANITIZE_NUMBER_INT);
if(!$cID) {
    echo "No cID specified.";
    exit;
}
$username = "###";
$password = "###";
$pdo2 = new PDO('mysql:host=localhost;dbname=####', $username, $password);
$pdo2->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth2 = $pdo2->prepare('
    SELECT Co.info, Co.date
    FROM Course C, Comment Co
    WHERE C.cID = Co.cID
    AND cID = ?;
    ;');
$sth2->execute(array(
    $cID
));
?>
PHP调用以上内容:
<?php
                    // Did we get …mysql-error-1052 ×13
mysql ×12
sql ×7
join ×3
php ×3
database ×2
activerecord ×1
inner-join ×1
zend-db ×1