Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql sql连接导致双行_Mysql_Sql_Database - Fatal编程技术网

Mysql sql连接导致双行

Mysql sql连接导致双行,mysql,sql,database,Mysql,Sql,Database,我有两张桌子需要连接 我使用此sql查询创建的第一个表 CREATE TABLE `users` ( `id` bigint PRIMARY KEY AUTO_INCREMENT, `user_login` varchar(60), `user_pass` varchar(255), `first_name` varchar(30), `last_name` varchar(30), `user_status` int(2), `user_phone_number`

我有两张桌子需要连接

我使用此sql查询创建的第一个表

CREATE TABLE `users` (
  `id` bigint PRIMARY KEY AUTO_INCREMENT,
  `user_login` varchar(60),
  `user_pass` varchar(255),
  `first_name` varchar(30),
  `last_name` varchar(30),
  `user_status` int(2),
  `user_phone_number` varchar(20),
  `user_email` varchar(100),
  `user_billing_info` text,
  `user_temp_units` int(2),
  `user_flow_units` int(2),
  `user_notes` text
);
SELECT * FROM station_meta JOIN users
第二桌

CREATE TABLE `station_meta` (
  `uid` VARCHAR(25) PRIMARY KEY,
  `nickname` varchar(30),
  `install_date` date,
  `latatude` numeric(10,6),
  `longitude` numeric(10,6),
  `firmware_ver` varchar(10),
  `weir_type` int(2),
  `weir_width` numeric,
  `dist_to_ground` numeric,
  `dist_to_weir` numeric,
  `service_fee` numeric,
  `notes` text
);
当我使用这个sql查询时,我得到了两行

CREATE TABLE `users` (
  `id` bigint PRIMARY KEY AUTO_INCREMENT,
  `user_login` varchar(60),
  `user_pass` varchar(255),
  `first_name` varchar(30),
  `last_name` varchar(30),
  `user_status` int(2),
  `user_phone_number` varchar(20),
  `user_email` varchar(100),
  `user_billing_info` text,
  `user_temp_units` int(2),
  `user_flow_units` int(2),
  `user_notes` text
);
SELECT * FROM station_meta JOIN users
注意:uid类似于9C9Z454Z5CA,以防需要提及

所以在另一个表中没有相同的列

更新

数据样本

我的结果

我在foreach的php函数中使用它,所以得到了双重结果


感谢您的帮助

您似乎忽略了这两个表之间的关系。
如果要避免笛卡尔积,只检索两个表之间的匹配值,则应添加一个关系,如下所示:

table user_station_meta (
    `id` bigint PRIMARY KEY AUTO_INCREMENT,
    user_id bigint
    station_meta_uid VARCHAR(25)
)

once you have inserted the matching values  

uid,        id
9c2748..    1
BC8CD4..    5
您可以根据需要选择单个匹配结果

select u.*. s.*
from  user_station_meta us
JOIN station_meta s on s.uid = us.uid
JOIN users u on u.id = us.id

更新您的问题添加适当的数据示例、实际结果和预期结果,并解释如何联接这两个表(这两个表中的哪些列用于联接)@scaisEdge ok正确操作now@scaisEdge请检查,我更新了问题,我使用我提到的简单查询加入了他们,表1连接表2我没有使用任何列进行连接,我尝试使用表1作为z将表2作为x在z.id=x.uid中连接,但没有意义,因为uid不同于idLooking到结果。。您没有重复的行(在第一行中,uid和nicname是重复的,但不是昵称)。两个表之间只有一个笛卡尔积(事实上没有用于连接的元素并减少结果)。。所以你应该加上你期望的结果sorry@scaisEdge我真的很困惑,你对此有什么建议或解决方案?是什么原因造成这两排?