1

日付型フィールド名が dDate (形式の例は2008-12-26) の ORDER BY を試みていますが、うまくいきません。間違っていることを教えてください。

    $listsql = "SELECT contact.id, CONCAT(lastname,', ',firstname) AS fullname, lastname, firstname,
                dDate, line1, line2, city, state, zip, phone1, phone2, country, whoAdded
                FROM ". TABLE_CONTACT ." AS contact
                LEFT JOIN ". TABLE_ADDRESS. " AS address ON contact.id=address.id AND contact.primaryAddType=address.type
                LEFT JOIN ". TABLE_EMAIL ." AS email ON contact.id=email.id AND contact.primaryAddType=email.type
                WHERE contact.hidden != 1
                ORDER BY email.dDate DESC";

エラーは発生しませんが、日付が並んでいないだけです。たとえば、日付を並べて表示したいのですが、DESCまたはASCは問題ではありません。

2008-12-26
2008-12-27
2008-12-28

また

2008-12-28
2008-12-27
2008-12-26

私はこのようなものを手に入れます

2012-11-16
2012-11-30
2012-11-26
2012-11-30

SQL 出力は次のとおりです。

mysql> show create table address_email;
+---------------+---------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------+
| Table         | Create Table

                         |
+---------------+---------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------+
| address_email | CREATE TABLE `address_email` (
  `id` int(11) NOT NULL DEFAULT '0',
  `dDate` date DEFAULT NULL,
  `type` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+---------------+---------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------+
1 row in set (0.00 sec)

助けてくれてありがとう..

4

1 に答える 1

0

私が変更され:

LEFT JOIN ". TABLE_EMAIL ." AS email ON contact.id=email.id AND contact.primaryAddType=email.type

に:

LEFT JOIN ". TABLE_EMAIL ." AS email ON contact.id=email.id

2 つの LEFT JOIN を使用する場合、primaryAddType が 2 つになることはないと思います。

だから今、すべてがうまくいきます!!!! みんな、ありがとう!!:)

于 2012-11-29T22:22:15.150 に答える