Mysql 在我的select查询中写入相关子查询
我有一个时髦的查询,可以很好地处理静态数据,但我需要动态数据。静态数据是这样的Mysql 在我的select查询中写入相关子查询,mysql,correlated-subquery,Mysql,Correlated Subquery,我有一个时髦的查询,可以很好地处理静态数据,但我需要动态数据。静态数据是这样的 SELECT c.my_name, c.my_id, (SELECT count(d.friendship_id) FROM another_table d WHERE d.my_id = 1 AND d.my_friends_id = 2) as count FROM myprofile c WHERE c.my_id = 1; 这将返回我想要的数据,如下所示: my_name my_id count p
SELECT c.my_name, c.my_id, (SELECT count(d.friendship_id) FROM another_table d WHERE d.my_id = 1 AND d.my_friends_id = 2) as count FROM myprofile c WHERE c.my_id = 1;
这将返回我想要的数据,如下所示:
my_name my_id count
parijat 123 1 (OR 0 if the row doesn't exist)
作为参考,另一个\u table.my\u id外键和另一个\u table.my\u friends\u id引用了myprofile.my\u id主键。另一个_table.friendy _id是这里的主键,并且是自动递增的
现在实际问题是:
我希望我的子查询如下所示:
从另一个表d中选择countd.Friendly\u id,其中d.my\u id=1,d.my\u friends\u id=CURRENT\u ROW\u id
其中,当前_ROW_MY_ID是在主查询中选择的c.MY_ID
这可能吗?如果不可能,我应该采取什么方法来获得我需要的结果 您可以执行子查询以获取该表的当前自动增量值:
select auto_increment from information_schema.tables where table_schema = 'you_db_name' and table_name = 'your_table_name'
嗯
弗朗西斯科有时在我完全探索这个选项之前我会问。刚刚发现,即使在select语句中,相关子查询也可以正常工作。以下是我为使其工作所做的: 选择c.my_name,c.my_id,从另一个_表d中选择countd.Friendly_id,其中d.my_id=1,d.my_friends_id=c.my_id作为myprofile c中的计数,其中c.my_id=1
我的身份证有点模棱两可。更好的说法是profile\u id,但是处理遗留数据库肯定不好玩。为什么我要获取当前的自动增量值?