Nit*_*iry 5 php mysql twitter nested ordbms
我有2张桌子.USER表格包含所有个人详细信息,TWEETTABLE可通过twitter api检索用户时间线上的所有推文
用户表
  id|twitter_user_name|firstname|lastname|email
 -----------------------------------------------
  1 |  @johnsmith     |john     |smith   |js@gmail.com
tweettable
name|scr_name|tweets      |created_at_ |followers_count
----------------------------------------------------------
CNN |CNN     |*tweet text*| 14nov 12:32|   38713286
我真正想要的是:
     id|            twitter_details                             |
  -----|------------------------------------------------------- |
       |name |scr_name|tweets      |created_at_ |followers_count|
       | ----|--------|------------|------------|--------------
     1 |  CNN|CNN     |*tweet text*| 14nov 12:32|   38713286    |
   ----|------------------------------------------------------
     2 |  BBC|BBC     |*tweet text*| 14Nov 16:43|   38713254    |
   ----|-----|--------|------------|------------|---------------|------
     3
也就是说,列中的表.第1列将包含用户ID和第2列,其中包含所有相应的Twitter时间线详细信息.我可以通过以下方式在oracle中执行此操作:
CREATE TYPE tweet_typ AS OBJECT
( 
 name VARCHAR2(20),
 scr_name VARCHAR2(25),
 tweets text,
 created_at timestamp;
 followers count VARCHAR2(25)
 )
MEMBER PROCEDURE display_details (SELF IN OUT
twitter_typ )
);
并在twitter_details列中使用它作为嵌套表
CREATE TABLE TWEETTABLE
( id INT,
  twitter_details tweet_typ
   );
然后插入
 INSERT INTO TWEETTABLE
  VALUES ( 1,twitter_typ (--extracted values goes here--));
但是Mysql不允许嵌套表.那么如何将tweettable定义为一个对象并使其成为mysql中twitter_details列中的嵌套表?
你不能那样做,但你可以像每个人一样做。只需定义
tweettable
作为
tweetID | userID |name|scr_name|tweets      |created_at_ |followers_count
----------------------------------------------------------
  1          1    CNN |CNN     |*tweet text*| 14nov 12:32|   38713286
您添加 2 列。一个(可以是 autoinc)tweetID 和一个 userID,与发推文的用户相关。
然后你就可以通过 join 得到结果
select * from user u join tweettable t where u.id = t.userID;