提问人:Nithin Nampoothiry 提问时间:12/12/2017 更新时间:12/12/2017 访问量:2198
mysql中的嵌套表
Nested table in mysql
问:
我有 2 张桌子。包含所有个人详细信息的 USER 表和包含通过 twitter api 检索的用户时间线中的所有推文的 TWEETTABLE
用户表
id|twitter_user_name|firstname|lastname|email
-----------------------------------------------
1 | @johnsmith |john |smith |[email protected]
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 时间线详细信息。我可以通过这样做在预言机中做到这一点:
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不允许嵌套表。那么,如何在mysql中将tweettable定义为一个对象,并使其成为列twitter_details内的嵌套表呢?
答:
0赞
farbiondriven
12/12/2017
#1
你不能那样做,但你可以像每个人一样做。只需定义
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,与 twitt 的用户相关。
然后,您可以通过 join 获得结果
select * from user u join tweettable t where u.id = t.userID;
0赞
Vladimir
12/12/2017
#2
更好地使用跨表。例如,“users_tweets”。 表结构:
user_id | tweed_id
哪里 - 它来自“user_table”和“tweet_id”它是“id”来自user_id
id
tweettable
或
user_id | tweet_name
其他方式 - 将twitter_details转换为字符串:
$strDetails = json_encode($twitter_details)
并将此字符串插入数据库$strDetails
评论