2015-06-29 23 views
0

执行我写了一个查询在MySQL的表来获取最新的所有国家。相同的查询在phpmyadmin(本地主机)执行SQL提琴。两个结果都不一样。但SQL小提琴产生正确的结果。不同的结果相同的SELECT查询时上的phpmyadmin和SQL小提琴

我能找到发布堆栈溢出早些时候在这个Link

我没有从任何后帮助同样的问题。我的问题是如何得到phpmyadmin(本地主机)SELECT我写下面的查询得到正确的结果;我的SELECT查询有问题吗?

选择查询:(我在这两个PHPMYADMIN和SQL小提琴伏法)

SELECT 
    t1.id, t1.country, 
    t1.tax, t1.created_by, 
    t1.created_on, t1.modified_by, t1.modified_on 
FROM tax t1 
INNER JOIN 
(
    SELECT country, MAX(created_on) AS latest 
    FROM tax GROUP BY country 
) t4 ON t1.created_on=t4.latest AND t1.country=t4.country; 

+-------------+--------------+------+-----+-------------------+----------------- 
------------+ 

| Field  | Type   | Null | Key | Default   | Extra 
      | 

+-------------+--------------+------+-----+-------------------+----------------- 
------------+ 

| id   | int(11)  | NO | PRI | NULL    | auto_increment 
      | 

| country  | int(11)  | NO |  | NULL    | 
      | 

| tax   | decimal(8,5) | NO |  | NULL    | 
      | 

| created_by | int(11)  | NO |  | NULL    | 
      | 

| created_on | timestamp | NO |  | CURRENT_TIMESTAMP | 
      | 

| modified_by | int(11)  | YES |  | NULL    | 
      | 

| modified_on | timestamp | YES |  | NULL    | on update CURREN 
T_TIMESTAMP | 

+-------------+--------------+------+-----+-------------------+----------------- 
------------+ 

创建表查询:(这是我在SQL小提琴试过)

CREATE TABLE tax (id int(11) NOT NULL AUTO_INCREMENT, country int(11) NOT NULL, tax decimal(8,5) NOT NULL, created_by int(11) NOT NULL, created_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, modified_by int(11) DEFAULT NULL, modified_on timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id)); 

INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,7,51,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,7,51,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,7,49,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,7,50,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,7,48,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (6,9.45450,51,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (3,8.88900,49,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (2,9.08989,49,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (2,4.00087,49,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,1.88900,49,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (4,5.54656,51,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (5,7.45435,50,'2015-06-26 16:26:20'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,43.88776,46,'2015-06-26 17:30:18'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (2,5.67,46,'2015-06-26 17:39:12'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (12,0.009,46,'2015-06-26 17:48:35'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (11,3,46,'2015-06-26 17:55:14'); 
INSERT INTO tax(country, tax, created_by, created_on) VALUES (1,5,46,'2015-06-26 17:55:39'); 

请找SQL Fiddle Result @

结果在phpMyAdmin(本地主机)生产

+----+---------+---------+------------+---------------------+-------------+----- 
--------+ 

| id | country | tax  | created_by | created_on   | modified_by | modi 
fied_on | 

+----+---------+---------+------------+---------------------+-------------+----- 
--------+ 

| 3 |  3 | 7.00000 |   49 | 2015-06-26 16:26:20 |  NULL | NULL 
     | 

| 5 |  5 | 7.00000 |   48 | 2015-06-26 16:26:20 |  NULL | NULL 
     | 

| 6 |  6 | 9.45450 |   51 | 2015-06-26 16:26:20 |  NULL | NULL 
     | 

| 7 |  3 | 8.88900 |   49 | 2015-06-26 16:26:20 |  NULL | NULL 
     | 

| 11 |  4 | 5.54656 |   51 | 2015-06-26 16:26:20 |  NULL | NULL 
     | 

| 12 |  5 | 7.45435 |   50 | 2015-06-26 16:26:20 |  NULL | NULL 
     | 

| 14 |  2 | 5.67000 |   46 | 2015-06-26 17:39:12 |  NULL | NULL 
     | 

| 15 |  12 | 0.00900 |   46 | 2015-06-26 17:48:35 |  NULL | NULL 
     | 

| 16 |  11 | 3.00000 |   46 | 2015-06-26 17:55:14 |  NULL | NULL 
     | 

| 17 |  1 | 5.00000 |   46 | 2015-06-26 17:55:39 |  NULL | NULL 
     | 

+----+---------+---------+------------+---------------------+-------------+----- 
--------+ 
+1

您得到不同结果的明显原因是您使用不同的源数据。在phpmyadmin的输出示例中,有两行不存在于使用sql fiddle的数据集中。 – jpw

+0

哦,我的坏。你是对的?现在我得到了两个结果相同@jpw –

+0

可以帮助我编写查询以获取每个“国家”的所有最新“税”而不会有重复吗? –

回答

相关问题